加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

从特定键迭代php数组

发布时间:2020-12-13 21:51:26 所属栏目:PHP教程 来源:网络整理
导读:我的问题没有找到任何答案. 我知道如何在 PHP中迭代数组但我想从特定的键迭代一个数组. 假设我有一个巨大的阵列 $my_array = array(......["adad"] = "value X",["yy"] = "value Y",["hkghgk"] = "value Z",["pp"] = "value ZZ",......) 我知道关键在哪里开
我的问题没有找到任何答案.
我知道如何在 PHP中迭代数组但我想从特定的键迭代一个数组.

假设我有一个巨大的阵列

$my_array = array(
...
...
["adad"] => "value X",["yy"] => "value Y",["hkghgk"] => "value Z",["pp"] => "value ZZ",...
...
)

我知道关键在哪里开始迭代(“yy”).现在我想只从这个键迭代到另一个键.

我知道我不想这样做:

$start_key = "yy";
foreach ($my_array as $key => $v)
{
   if ($key == $start_key)
      ...
}

我在寻找Iterator,但我认为这不是我需要的.

解决方法

尝试组合array_search,array_key和 LimitIterator.使用LimitIterator页面中的示例和一些额外的位:

$fruitsArray = array(
    'a' => 'apple','b' => 'banana','c' => 'cherry','d' => 'damson','e' => 'elderberry'
);

$startkey = array_search('d',array_keys($fruitsArray));

$fruits = new ArrayIterator($fruitsArray);

foreach (new LimitIterator($fruits,$startkey) as $fruit) {
    var_dump($fruit);
}

从位置’d’开始,输出:

string(6) "damson" string(10) "elderberry"

编辑:第一次回答问题!很高兴它的喜欢.这种方法有一个限制,因为它不会在阵列周围循环,直到再次开始位置.它只会迭代到数组的末尾然后停止.您将不得不运行另一个foreach来执行数组的第一部分,但这可以使用我们已有的代码轻松完成.

foreach (new LimitIterator($fruits,$startkey-1) as $fruit) {
    var_dump($fruit);
}

这从第一个元素开始,直到我们搜索的元素之前的元素.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读