我有一个多维数组,如下所示:
$a = array (
#id num name full name
0 => array ( 65, 'name-1', 'Name One' ),
1 => array ( 76, 'name-2', 'Name Two' ),
2 => array ( 82, 'name-3', 'Name Three' )
);
现在,如果我想选择'name-1'
(姓名)我使用$a[0][1]
并选择'Name Three'
(全名),我会使用$a[2][2]
。
所以,如果我在数组中有id,我可以选择数字,名称或全名。
但如果我有号码或名字,我想选择全名怎么办?我怎么能得到它?
感谢。
答案 0 :(得分:3)
如果使用id,则表示num:
$num = // num you want to find
foreach ($a as $b) {
if ($b[0] == $num) {
$name = $b[1];
$full = $b[2];
break;
}
}
如果id为id,则表示#ID:
$id = // id you want to find
$num = $a[$id][0];
$name = $a[$id][1];
$full = $a[$id][2];
答案 1 :(得分:2)
你有价值而你想要一把钥匙,所以也许你应该考虑重组阵列。如果要保留该结构,则需要遍历每个元素(for,foreach),使用array_search
检查匹配(结果是数组键或false)。
for ($i = 0, $ix = count($a); $i < $ix; ++$i) {
$pos = array_search($NAME, $a[$i]);
if ($pos === false) {
continue;
}
print_r($a[$i]);
break;
}
答案 2 :(得分:1)
你必须循环遍历数组。例如,如果您有数字:
$result = false;
foreach ($a as $value) {
if ($value[0] == $number) {
$result = $value; break;
}
}
现在你可以使用$ value了。要使用名称或全名进行搜索,您必须使用$ value [1]和$ value [2]。