【问题标题】:array_slice in multidimensional array?多维数组中的array_slice?
【发布时间】:2010-10-01 07:30:27
【问题描述】:

我在 php 中有一个这样的数组:

Array
(
    [0] => Array
        (
              [915] => 1
              [1295] => 1
              [1090] => 1
              [1315] => 0.93759357774
              [128] => 0.93759357774
              [88] => 0.731522789561
              [1297] => 0.731522789561
              [1269] => 0.525492880722
              [1298] => 0.525492880722
              [121] => 0.519133966069
         )
   [1] => Array
       (
              [585] => 1
              [1145] => 1
              [1209] => 1
              [375] => 1
              [1144] => 1
              [913] => 1
              [1130] => 0.996351158355
              [215] => 0.937096401456
              [1296] => 0.879373313559
              [30] => 0.866473953643
              [780] => 0.866473953643
              [1305] => 0.866473953643
              [1293] => 0.866473953643
       )

) 

如何获取每个数组的第 1-5 行子数组,如下所示:

结果:

Array
(
    [0] => Array
        (
              [915] => 1
              [1295] => 1
              [1090] => 1
              [1315] => 0.93759357774
              [128] => 0.93759357774
         )
   [1] => Array
       (
              [585] => 1
              [1145] => 1
              [1209] => 1
              [375] => 1
              [1144] => 1
       )

)

【问题讨论】:

    标签: php arrays multidimensional-array


    【解决方案1】:
    $multid_array = array(/* Your Multidimensional array from above*/);
    
    $sliced_array = array();  //setup the array you want with the sliced values.
    
    //loop though each sub array and slice off the first 5 to a new multidimensional array
    foreach ($multid_array as $sub_array) {
        $sliced_array[] = array_slice($sub_array, 0, 5);
    }
    

    然后 $sliced_array 将包含您想要的输出。

    【讨论】:

    • 不应该是$sliced_array[] = array_slice($sub_array, 0, 5);吗?
    【解决方案2】:
    • 遍历数组。
    • 通过引用读取值。
    • 从偏移量5 删除键值直到 结束。您不需要收集返回值,因为我们使用的是对原始数组的引用。

    .

    foreach($mainArray as $key => &$value) {
      array_splice($value,5);
    }
    

    Working ideone link

    【讨论】:

      【解决方案3】:

      您可能想查看 php 函数 array_splice。

      http://no.php.net/manual/en/function.array-slice.php

      【讨论】:

      • 我明白你的意思,但如果他已经知道这个功能,他为什么还要问这个问题呢?我给出的链接的第一行说“array_slice — 提取数组的一个切片”?但是是的,我在回答以后的问题时会更加注意标题=D
      猜你喜欢
      • 2019-06-28
      • 2019-08-24
      • 2013-07-17
      • 2012-05-16
      • 1970-01-01
      • 2015-12-11
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      相关资源
      最近更新 更多