【问题标题】:How to unset all upper array values from a specific location in php如何从php中的特定位置取消设置所有上部数组值
【发布时间】:2013-01-11 10:32:58
【问题描述】:

我在 php 中有一个小任务。我有这两个数组。

图片

Array
(
    [0] => 420157_NpFQlK
    [1] => 420157_5yVlp9
    [2] => 420157_hqioBU
    [3] => 420157_a5wbZB
)

级别

Array
(
    [0] => 50
    [1] => 100
    [2] => 150
    [3] => 200
    [4] => 250
    [5] => 300
    [6] => 350
    [7] => 400
)

现在我需要像这样显示结果

图片

Array
(
    [0] => 420157_NpFQlK
    [1] => 420157_5yVlp9
    [2] => 420157_hqioBU
    [3] => 420157_a5wbZB
)

级别

Array
(
    [0] => 50
    [1] => 100
    [2] => 150

)

我想取消设置所有上层。我的意思是如果图像数组的计数为 4,则未设置的级别 [3](第 4 个索引)和所有上层。我怎样才能在最短的 php 脚本中做到这一点?

【问题讨论】:

  • 如果您的所有键都是数字的、从 0 开始的、连续的,请尝试 $level=array_slice($level,0,count($image)-1)
  • 只是简单的计算!
  • 谢谢大家的建议

标签: php arrays


【解决方案1】:

array_slice为例:

$levels = array_slice($levels, 0, count($images) - 1);

您应该注意参数,以便在极端情况下也能完全按照您希望的方式工作(例如,如果 $images 为空会发生什么情况?)

【讨论】:

  • 我发现这是最程序化的解决方案,因为将它传递给 level 也是我想要的,它节省了一行。谢谢!
【解决方案2】:

为此使用 array_slice :D

$subArray = array_slice($arr,0,$index);

【讨论】:

    【解决方案3】:
    <?php array_slice($levels, 0,count($images)-1); ?>
    

    【讨论】:

      【解决方案4】:

      使用 array_slice。

      $count =3;
      $slice_array=array_slice($levels,0,$count);
      

      【讨论】:

        猜你喜欢
        • 2014-08-20
        • 2012-04-26
        • 2023-03-23
        • 1970-01-01
        • 2019-02-25
        • 2010-10-22
        • 1970-01-01
        • 1970-01-01
        • 2020-05-02
        相关资源
        最近更新 更多