开发者

Reproducing the new array from existing array(multi array)

开发者 https://www.devze.com 2023-01-30 16:54 出处:网络
Reproducing the new array from existing array(multi array) If I have an array called as parameter: $arr =Array

Reproducing the new array from existing array(multi array)

If I have an array called as parameter:

$arr =  Array
          (
          [0] => Array(0,Array(0=>'abc'))
          [1] => Array(0,Array(1=>'def'))
          [2] => Array(1,Array(0=>'ghi'))
    )

Want to to a function that pass $arr some thing like this

function TODO($arr){
      //
      return $new_array;
 }

And the function will return RESULT WILL BE Reproduce elements from previous array ,And it开发者_JAVA技巧 will be got the result(returned):

Array
    (
       [0] => Array
           (
              [0] => 'abc'
              [1] => 'def'
            )

       [1] => Array
           (
               [0] => 'ghi'
            )

    )

Anybody know how to do this?Please

thanks


I'm not 100% sure I've understood what you want, but if I have, this should work:

<?php

$arr = Array(
    0 => Array(0, Array(0=>'abc')),
    1 => Array(0, Array(1=>'def')),
    2 => Array(1, Array(0=>'ghi'))
);


function transformArray($array) {
    $newArray = array();

    foreach ($array as $value) {
        if (!isset($newArray[$value[0]])) {
            $newArray[$value[0]] = array();
        }
        $newArray[$value[0]][] = array_pop($value[1]);
    }

    return $newArray;
}


$outputArray = transformArray($arr);
echo '<pre>' . print_r($outputArray, true) . '</pre>';

?>


I don't think so. If you have controll over how these text arrays are turned into text, you should use serialize() and unserialize(). The fastest and easiest way.

If you still need to create arrays from the strings you have provided, you will probably have to construct quite a complex function to do that.

0

精彩评论

暂无评论...
验证码 换一张
取 消