1

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

$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'(name) 我使用$a[0][1]并选择'Name Three'(full name) 我使用$a[2][2].

因此,如果数组中有 id,我可以选择数字、名称或全名。

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

谢谢。

4

3 回答 3

3

如果使用 id 你的意思是数字:

$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-01T15:14:40.740 回答
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;
}
于 2012-05-01T15:16:07.843 回答
1

您将不得不遍历数组。例如,如果您有号码:

$result = false;
foreach ($a as $value) {
    if ($value[0] == $number) { 
        $result = $value; break;
    }
}

现在你可以使用 $value。要使用姓名或全名进行搜索,您必须使用 $value[1] 和 $value[2]。

于 2012-05-01T15:16:26.187 回答