我有以下数组$ foo
array(10) {
[0] => array(4) {
["merchantId"] => string(5) "12e21"
["programId"] => string(27) "ddd3333"
["networkId"] => int(4)
["clientId"] => int(178)
}
[1] => array(4) {
["merchantId"] => string(5) "112e1"
["programId"] => string(27) "2vfrdbv1&=10&tmfdpid=csss"
["networkId"] => int(4)
["clientId"] => int(178)
}
[2] => array(4) {
["merchantId"] => string(5) "112e1"
["programId"] => string(27) "2vfrdbv1&=10&tmfdpid=csss"
["networkId"] => int(4)
["clientId"] => int(178)
}
我需要一个clientId数组(仅限)
是否可以只访问clientId来创建一个没有循环的id数组?
类似的东西:
$foo['clientId']; //which doesn't work
答案 0 :(得分:15)
在PHP 5.5中:
$rgResult = array_column($foo, 'clientId');
PHP中的< = 5.5:
$rgResult = array_map(function($rgItem)
{
return $rgItem['clientId'];
}, $foo);
(放<=
因为这个原因,也适用于5.5)
答案 1 :(得分:0)
作为array_column()的替代
$transpose = call_user_func_array(
'array_map',
array_merge(
array(NULL),
$data
)
);
$result = $transpose[array_search("programId", array_keys($data[0]))];
var_dump($result);
可以在PHP5.5中以单行方式完成
$result = call_user_func_array('array_map',array_merge(array(NULL),$data))[array_search("programId", array_keys($data[0]))];
var_dump($result);
我承认,虽然不是直观或可读的