多维数组的关联数组

问题描述 投票:0回答:1

我是PHP新手,需要一点帮助。对于某些人来说可能很容易,但是给了我一段艰难的时光。

我有一个数组

Array ( [0] => page-18 [1] => page-20 )

我想进一步用'-'爆炸:

$mainStringBrk = array('page-18', 'page-20');
$finalArray = array();
foreach($mainStringBrk as $bString){
    $mainStringBrkBrk = explode('-', $bString);
    $finalArray[$mainStringBrkBrk[0]] = $mainStringBrkBrk[1];
}
echo '<pre>'; print_r($finalArray);

当我这样做时,它仅输出数组的最后一个键和值。

Array ( page => 20 )

我想要的输出是:

Array ( page => 18, page => 20 )

我想知道是否有人可以指导我正确的方向。

php multidimensional-array associative-array
1个回答
1
投票

您无法获得所需的结果,因为不可能有一个具有相同键的数组;这就是为什么您的输出中只有一个结果的原因。您可以将输出结构更改为二维数组以解决此问题,例如

$mainStringBrk = array('page-18', 'page-20');
$finalArray = array();
foreach($mainStringBrk as $bString){
    $mainStringBrkBrk = explode('-', $bString);
    $finalArray[$mainStringBrkBrk[0]][] = $mainStringBrkBrk[1];
}
print_r($finalArray);

输出:

Array
(
    [page] => Array
        (
            [0] => 18
            [1] => 20
        )
)

或者如果更适合您的需求,则可以采用此结构:

$finalArray = array();
foreach($mainStringBrk as $bString){
    $mainStringBrkBrk = explode('-', $bString);
    $finalArray[] = array($mainStringBrkBrk[0] => $mainStringBrkBrk[1]);
}
print_r($finalArray);

输出:

Array
(
    [0] => Array
        (
            [page] => 18
        )
    [1] => Array
        (
            [page] => 20
        )
)

Demo on 3v4l.org

© www.soinside.com 2019 - 2024. All rights reserved.