3

我需要一些帮助来尝试两次内爆我的多维数组。我正在使用 Joomla 2.5,它用于后端组件..

这是数组的内容:

Array
(
    [jform] => Array
        (
            [options] => Array
                (
                    [colour] => Array
                        (
                            [0] => a
                            [1] => d
                        )

                    [size] => Array
                        (
                            [0] => b
                            [1] => e
                        )

                    [qty] => Array
                        (
                            [0] => c
                            [1] => f
                        )

                )

        )

)

我尝试使用以下代码:

$i=0;
$optchildArr = array();
$optchildArrX = array();
foreach ($this->options as $optArr) :

    $j=0;
    foreach ($optArr as $arr) :
        $optchildArrX[] = $arr;
        $j++;
    endforeach;

    $optchildArr[$i] = implode(',',$optchildArrX);
    $i++;
endforeach;

$this->options  = implode(';',$optchildArr);

但我得到了这样的结果:

[options] => Array
        (
            [0] => a,d
            [1] => a,d,b,e
            [2] => a,d,b,e,c,f
        )

当我追求:

[options] => Array
        (
            [0] => a,b,c
            [1] => d,e,f
        )

任何帮助将不胜感激!!:)

4

1 回答 1

3

假设主数组是$A

function mergeArrays($colour, $size, $qty) {
    $result = array();
    for ($i=0; $i<count($colour); $i++) {
        //Assuming three arrays have the same length;
        $result[] = implode(',',array($colour[$i], $size[$i], $qty[$i]));
    }
    return $result;
}

$result_array = array_map(
    'mergeArrays',
    $A['jform']['options']['colour'],
    $A['jform']['options']['size'],
    $A['jform']['options']['qty']
);

//Check the output from this, should be the output you described.
var_dump($result_array);
于 2012-10-17T00:17:40.323 回答