簡體   English   中英

更改php中的數組結構

[英]Change the array structure in php

如何像在 test2 中一樣更改 test1 數組格式?

$test1 = array(
    'size'=>array('V'=>array('V'),'R'=>array('R','R')),
    'price'=>array('V'=>array('77'),'R'=>array('88','99')),
    'unit'=>array('V'=>array('3'),'R'=>array('3','2')),
    'color'=>array('V'=>array('Black'),'R'=>array('Green','Red')));

$test2 = array(
    'size'=>array('V','R'),
    'price'=>array('V'=>array('Black'=>'77'),
                   'R'=>array('Green'=>'88','Red'=>'99')),
    'unit'=>array('V'=>array('Black'=>'3'),
                  'R'=>array('Green'=>'3','Red'=>'2')),
    'color'=>array('V'=>array('Black'),'R'=>array('Green','Red')));

謝謝!

使用 foreach 循環,您可以更改數組結構。 http://php.net/manual/de/control-structures.foreach.php這樣的事情應該可以工作:在您的情況下,從一個數組轉換為另一個數組的規則非常不清楚。

$test2 = array();
foreach ($test as $type => $array) {
    $newArray = array();
    foreach ($array as $key => $value) {
        if ($key == 'V') {
            if ($value == 3) {
                $newArray['V'] = array('Black' => 3);
            } else if ($value = 2) {
                $newArray['V'] = array('Green' => 2);
            }
        } else if ($key == 'R') {
            //....
        }
    }
    $test2[$type] = $newArray;
}

感謝您的回復。 很抱歉沒有更具體。 實際上,我希望以動態方式獲取所有值。 我構建了一個循環:)。 謝謝!

$myArray = array();
foreach($test as $type => $array){
    $k = 0;
    foreach ($array as $key => $value) {
    if($type == 'size'){
        $myArray['size'][] = $key;
    }else if($type == 'price' || $type == 'unit' ){ 
        $m = 0;
        foreach($value as $vall){
            if($type == 'price'){
                $myArray['price'][$myArray['size'][$k]][$test['color'][$myArray['size'][$k]][$m]] = $test['price'][$myArray['size'][$k]][$m];
            }else if($type == 'unit'){
                $myArray['unit'][$myArray['size'][$k]][$test['color'][$myArray['size'][$k]][$m]] = $test['unit'][$myArray['size'][$k]][$m];
            }
            $m++;
        }
    }else if($type == 'color'){
        $myArray['color'][] = $value;
    }
    $k++;
}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM