PHP array merge from unknown number of parameters

前端 未结 6 1430
南方客
南方客 2021-01-16 17:36

I have an PHP array looking like this:

$array[\'my_data\'][\'value\'] = \'some value\';
$array[\'my_own_data\'][\'value\'] = \'another value\';
$array[\'diff         


        
6条回答
  •  感动是毒
    2021-01-16 18:43

    // 1. your array should have different keys, otherwise it will have no effect
    $array['my_data']['value1'] = 'some value';
    $array['my_own_data']['value2'] = 'another value';
    $array['different_data']['value3'] = 'another value';
    
    $result = call_user_func_array('array_merge', $array);
    

    will return

    array(
      'value1' => 'some value', 
      'value2' => 'another value', 
      'value3' => 'another value', 
    )
    

    Otherwise, did you wanted something like this ?

    array(
      'value' => array('some value', 'another value', 'another value')
    )
    

    Then you could do

    $array['my_data']['value'] = 'some value';
    $array['my_own_data']['value'] = 'another value';
    $array['different_data']['value'] = 'another value';
    
    $result = array();
    // PHP <= 5.2
    array_walk($array, create_function('&$item, $key, &$dest', '
        foreach ((array) $item as $subKey => $value) {
            if (!isset($dest[$subKey])) { $dest[$subKey] = array(); }
            $dest[$subKey][] = $value;
        }
    '), & $result);
    var_export($result);
    

提交回复
热议问题