在php中将多个关联数组值提取到单个数组中

时间:2016-08-13 08:04:52

标签: php arrays

我有一个像这样的数组

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循环来实现这个目标,但我认为这不是一个很好的方法。

3 个答案:

答案 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