从php多维数组中选择数据

时间:2012-05-01 15:11:07

标签: php arrays multidimensional-array

我有一个多维数组,如下所示:

$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,我可以选择数字,名称或全名。

但如果我有号码或名字,我想选择全名怎么办?我怎么能得到它?

感谢。

3 个答案:

答案 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]。