0

次の配列があります。

$myArray
: array = 
  0: array = 
    0: string = 2012
    1: string = 1
    2: string = JOHN
  1: array = 
    0: string = 2012
    1: string = 2
    2: string = JOHN
  2: array = 
    0: string = 2012
    1: string = 3
    2: string = MARK

変数 $name もあります。今度は $name が JOHN に等しいとしましょう

次のように JOHN を含む要素だけを含む新しい配列を作成するには、どうすればよいですか。

$myArray
: array = 
  0: array = 
    0: string = 2012
    1: string = 1
    2: string = JOHN
  1: array = 
    0: string = 2012
    1: string = 2
    2: string = JOHN

どうもありがとう!

4

2 に答える 2

2

最も簡単な方法は、カスタム コールバックでarray_filterを使用することです。この場合、クロージャーを使用します。

// $name is the variable containing 'JOHN'
$array2 = array_filter($array1, function($val) use ($name) {
   return $val[2] === $name;
});
于 2012-09-18T15:00:28.043 に答える
1
function search ($arr, $name){
    $result = array();
    foreach ($arr as $v) {
        if ($v[2] == $name)
            $result[] = $v;
    }
    return $result;
}

This function returns an array containing only the values you want.

于 2012-09-18T14:50:22.147 に答える