如何清理数组和设置新的键



我有一个多数组:

array(2) {
    ["clean_bin_number"]=>
    array(1) {
      [0]=>
      array(1) {
        [0]=>
        string(7) "1004077"
      }
    }
    ["a_values"]=>
    array(6) {
      [0]=> "14"
      [1]=> "1"
      [2]=> "43"
      [3]=> "7"
      [4]=> "11"
      [5]=> "2"
    }

它更乱,但我设法清理到这一点。现在我试图实现一个数组,看起来像这样,但我找不到如何…

array(2) {
        ["clean_bin_number"] => "1004077"
        }
        ["a_values"]=>
        array(6) {
          "Total A" => "14"
          "Open A" => "1"
          "Total B" => "43"
          "Open B" => "7"
          "Total C" => "11"
          "Open C" => "2"
        }

a_values数组的顺序始终保持不变,但我仍然无法设置他们的键....

谢谢

或者,您可以这样做。考虑这个例子:

$data = array(
    'clean_bin_number' => array(
        0 => array(0 => ('1004077')),
    ),
    'a_values' => array(
        0 => '14',
        1 => '1',
        2 => '43',
        3 => '7',
        4 => '11',
        5 => '2',
    ),
);
// if this is supposed to be fixed leveled, try to access it directly.
$new_data['clean_bin_number'] = $data['clean_bin_number'][0][0];
// first get them by two's
$a_values = array_chunk($data['a_values'], 2);
$initial = 'A'; // first letter
// assign each two, then increment the letter
foreach($a_values as $key => $value) {
    $new_data['a_values']["Total $initial"] = $value[0];
    $new_data['a_values']["Open $initial"] = $value[1];
    $initial++;
}

print_r($new_data);
样本输出:

Array
(
    [clean_bin_number] => 1004077
    [a_values] => Array
    (
        [Total A] => 14
        [Open A] => 1
        [Total B] => 43
        [Open B] => 7
        [Total C] => 11
        [Open C] => 2
    )
)

当你有一个标准的结构,那么这应该可以达到目的。

$reference_array //Your reference array
//Assign to new array
$my_new_array['clean_bin_number'] =  $reference_array['clean_bin_number'][0][0];
$my_new_array['a_values']['Total A'] = $reference_array['a_values'][0];
$my_new_array['a_values']['Open A'] = $reference_array['a_values'][1];
$my_new_array['a_values']['Total B'] = $reference_array['a_values'][2];
$my_new_array['a_values']['Open B'] = $reference_array['a_values'][3];
$my_new_array['a_values']['Total C'] = $reference_array['a_values'][4];
$my_new_array['a_values']['Open C'] = $reference_array['a_values'][5];

最新更新