我有一个多维数组,如下:
$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,我可以选择数字、名称或全名。
但是,如果我有号码或名称,并且我想选择全名,该怎么办?我怎么才能得到它呢?
谢谢。
发布于 2012-05-01 23:14:41
如果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 you want to find
$num = $a[$id][0];
$name = $a[$id][1];
$full = $a[$id][2];发布于 2012-05-01 23:16:08
你有一个值,你想要一个键,所以也许你应该考虑重构你的数组。如果希望保留该结构,则需要遍历每个元素(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;
}发布于 2012-05-01 23:16:26
您将不得不遍历数组。例如,如果您有以下数字:
$result = false;
foreach ($a as $value) {
if ($value[0] == $number) {
$result = $value; break;
}
}现在您可以使用$value了。要使用名称或全名进行搜索,您必须使用$value1和$value2。
https://stackoverflow.com/questions/10399723
复制相似问题