我有一个像这样的数组
Array
(
[0] => Array
(
[0] => Array
(
[push_id] => APA91bGMnqfpYvJdUCx46eMDQZkLFRfd8jAlQs8q9MTh-HMIp4JrO461Lg0zYx0kFvvkFNRKyChicobdbAM9SLf_2Xyr0tWU1TxaZrfyVzbEE0wt4dAV5ikpBIsWoNkeIem0aqabU-lt
)
[1] => Array
(
[push_id] => APA91bEQZUuflwJIH-cn8Up2cxf8x9m_v6igTFsRcRMXgp3j7GD1f9F4DGMrWYu1Uey_qVXaosnPKBwwzjomqf8uDSQ7Q9itFrYHDeg6OFzpC0w5ipL-o6QH_Ir-WXMMk5HqwHXbkGf3
)
)
[1] => Array
(
[0] => Array
(
[push_id] => APA91bHBVeJ5G36hp2qvHSOYp8P22peyIjieRDXRT8QDQS__0vyZYzEx7CB-x5RngP11VLvV_GSemmBpd9oc8WIiRQfnnXJURTSUEJprJekp7gkkZntR_YlbXAC6N4-nNlALzAylGMf7
)
[1] => Array
(
[push_id] => APA91bFvQu61EsZodHHZ8Nb2xL7Dd_LLsLWRAHxkV3rhf3hP8gqLy1ekilYsNL-pIBnVgKj0OQCUySStnNvNizRP_Gid0Vk1p4hXnCz9n_n9MUCyn3_OlwtjC_RK9v611eep-gH7z-77
)
)
)
从这里我想要一个包含所有push_id
的新数组,目前我正在使用两个foreach循环来实现这个目标,但我认为这不是一个很好的方法。
答案 0 :(得分:0)
试试这个:
function formSingleArray($multiArray){
$r = array();
foreach($multiArray as $i => $a){
if(gettype($a) === 'array' || gettype($a) === 'object'){
$r = array_merge($r, formSingleArray($a));
}
else{
$r[$i] = $a;
}
}
return $r;
}
$o = new StdClass; $o->really = 'neat';
$test = formSingleArray(array(0, $o, 1, array('again' => 'works', "you're" => 'welcome'), array('what', array(10, 'really'))));
print_r($test);
这应该适用于任何深度,因为它是递归的。
答案 1 :(得分:0)
您可以使用一个循环和array_column()功能。
答案 2 :(得分:0)
您可以使用这样的推送ID创建一个数组。
$pushid_array=array();
$mainpusharray=array()//your array as you shown in the example
foreach($mainpusharray as $key=>$value)
{
if(is_array($value)
{
foreach($value as $key=>$val2)
{
array_push($pushid_array,$val2['push_id']);
}
}
}
print_r($pushid_array); //to see array created with the push_ids