【问题标题】:PHP Slicing a multidimensional arrayPHP切片多维数组
【发布时间】:2014-08-25 11:55:21
【问题描述】:

我有以下来自多维数组的print_r()(为简单起见,我没有在数组中包含所有信息:

print_r()

Array (
[0] => Array (
  ...
)
[41] => Array (
  [name] => London 
  [company] => nhyt6t
  [top25_1] => 8.75912088
)
[42] => Array (
  [name] => Manchester
  [company] => gtr4rf
  [top25_1] => 6.56758398
)
  ...
[75] => Array (
  [name] => Leeds
  [company] => de3wsd6
  [top25_1] => 7.58675398
)
)

我想要实现的是对数组进行切片,以便我从数组[41] 向上获取信息到一个新数组中。

我知道我可以使用 `array_slice()' 但我的以下代码不起作用,我确信这是因为我从中切片的数组是多维的,我不知道如何实现这一点。

无效代码

$array = array_slice($row, 40);

欢迎任何和所有反馈和建议。

【问题讨论】:

  • 所以你想要 41 岁及以上?
  • 是的,达伦说的没错。
  • 您的非工作代码会产生什么?看起来不错
  • @h2ooooooo Shiat 好地方!在这里得到了模糊,现在编辑它为时已晚:-(
  • 干杯所有 - 现在工作 - 最奇怪的。不知道那里发生了什么!

标签: php arrays multidimensional-array slice


【解决方案1】:

你只需要查看php上的手册-> array_slice()

$array = array_slice($row, 40, (count($row) - 40))

您只是忘记提供第 3 个参数 ($length),我们将其作为从第 41 个 nth 项到最多的计数 :)

Example

【讨论】:

  • 第三个参数不是必需的。来自手册:“如果省略,则序列将包含从偏移量到数组末尾的所有内容。”
  • @FuzzyTree - 你是对的,但是,出于我不知道的原因 - 这有效,而我的代码没有。
  • @FuzzyTree 我意识到了这一点,但正如你所见,它不适用于 OP,所以我提供了一个替代方案 :-)
【解决方案2】:
<?php
$result = array();
for($i=40;$i<count($row);$i++)
{
   if(array_key_exists ($i,$row))
   {
       $result[$i] = $row[$i];
   }

}
print_r($result );
?>

【讨论】:

    猜你喜欢
    • 2020-05-03
    • 2021-11-23
    • 2013-02-01
    • 1970-01-01
    • 2018-03-29
    • 1970-01-01
    • 2010-09-14
    • 2019-05-09
    相关资源
    最近更新 更多