来自多维数组的关联数组
Associative Array From Multidimensional Array
我是 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 )
我想知道是否有人可以指导我正确的方向。
你不能得到你想要的结果,因为不可能有一个包含相同键的数组;这就是为什么您的输出中只有一个结果。您可以将输出结构更改为二维数组以解决此问题,例如
$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
)
)
我是 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 )
我想知道是否有人可以指导我正确的方向。
你不能得到你想要的结果,因为不可能有一个包含相同键的数组;这就是为什么您的输出中只有一个结果。您可以将输出结构更改为二维数组以解决此问题,例如
$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
)
)