我有一个问题。假设我有一个这样的数组:
#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
)
但不行。请帮帮我
答案 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