【问题标题】:PHP: Splitting an array into a deeper arrayPHP:将数组拆分为更深的数组
【发布时间】:2010-03-31 13:48:10
【问题描述】:

我有以下数组:

Array(
   [0] => 0,0
   [1] => 0,1
   [2] => 0,2
   [3] => 0,3
   [4] => 1,0
   [5] => 1,1
   [6] => 1,2
   [7] => 2,0
   [8] => 2,1
   [9] => 2,2
   [10] => 2,3 
)

我想将其拆分为以下结构:

Array( 

[0] => Array (
        [0] => 0
        [1] => 1
        [2] => 2
        [3] => 3
    )
[1] => Array (
        [0] => 0
        [1] => 1
        [2] => 2
        [3] => 3
    )
[2] => Array (
        [0] => 0
        [1] => 1
        [2] => 2
        [3] => 3
    )
[3] => Array (
        [0] => 0
        [1] => 1
        [2] => 2
        [3] => 3 
)

即,在“X,Y”值中,X 对应于值“Y”在新数组中的位置。我似乎无法理解逻辑,这是我第一次以这种方式使用“foreach”。

非常感谢任何帮助指出我正确的方向。

【问题讨论】:

  • 您的第二个代码块与第一个无关。你能举个输入输出的例子吗?

标签: php arrays foreach


【解决方案1】:

您示例中的输入和输出数组并不完全匹配,但我猜您正在寻找这个:

$array = array(…as above…);
$newArray = array();

foreach ($array as $value) {
    list($x, $y) = explode(',', $value);
    $newArray[$x][] = $y;
}

【讨论】:

  • 这可以通过将 $value 作为对实际数组元素的引用传递给循环来提高内存效率: foreach($array as &$value) { //.. . }
  • @Techpriester 现在,如果我见过一些微优化的话。 :o)
  • @deceze:你快了 5 分钟,所以它不会让我哈哈
  • @deceze:当然,这并不多,但我在每个允许它的 foreach 循环中都这样做。一段时间后,它变成了一个非常有用的习惯,当你真正需要它时,你不会忘记它。 :)
猜你喜欢
  • 2011-02-21
  • 2017-12-07
  • 2022-07-07
  • 1970-01-01
  • 2022-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多