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'を使用$a[0][1]します。'Name Three'$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 に答える