通过值从多维获取数组

时间:2016-05-11 08:02:34

标签: php arrays multidimensional-array php-5.5

我有一个问题。假设我有一个这样的数组:

#import "A.h"
#import "B.h"
#import "C.h"

我需要通过Array ( [0] => Array ( [id] => 4 [name] => test [surname] => test1 ) [1] => Array ( [id] => 6 [name] => test4 [surname] => test5 ) ) 获取数组的所有数据。因此,例如,如果我想获取id的数据,我需要得到这样的数组:

id=4

我尝试使用Array ( [id] => 4 [name] => test [surname] => test1 ) 但不行。请帮帮我

2 个答案:

答案 0 :(得分:0)

array_combine()&的帮助下array_column()

$array = array
(
   '0' => array
       (
          'id' => 4,
          'name' => 'test',
          'surname' => 'test1',
       ),
   '1' => array
       (
           'id' => 6,
           'name' => 'test4',
           'surname' => 'test5',
       )
);    
// Create array as id as index
$temp = array_combine(array_column($array, 'id'), $array);
// get the sub array
$new = $temp[4];
var_dump($new);

另一种简单的方法是 -

$new = array();

foreach($array as &$v) {
    if($v['id'] == 4) {
        $new = $v;
        break;
    }
}

var_dump($new);

<强>输出

array(3) {
  ["id"]=>
  int(4)
  ["name"]=>
  string(4) "test"
  ["surname"]=>
  string(5) "test1"
}

答案 1 :(得分:0)

你应该需要一个循环并检查子数组的id是否是你的搜索id,如果它然后存储然后是子数组并且中断。

$arr = array(
           array('id' => 4, 'name' => 'test', 'surname' => 'test1'),
           array('id' => 6, 'name' => 'test4', 'surname' => 'test5')
        );

$id = 4;
$out = array();
foreach($arr as $val){
    if($val['id'] == $id){
        $out = $val;
        break;
    }

}
echo '<pre>';
print_r($out);

检查出来:Online check