仅将 PHP foreach 重构为当前元素(无循环)

我有一个 foreach 循环,它返回一个字符串。但是,我想重构此代码以使其在没有循环的情况下工作,并且应该给出当前元素的字符串。


foreach ($orderWC->get_items() as $item_id => $item) {

    // Here you get your data

    $rank = wc_get_order_item_meta($item_id, 'Rank', true);

    var_dump($rank);

}

我试过了current();,但它返回一个 var_dump 的bool(false).


$item_id = current($orderWC->get_items());

$rank = wc_get_order_item_meta( $item_id, 'Rank', true ); 

我的逻辑是否有缺陷,这根本不可能,还是我只是以错误的方式做事?


有任何想法吗?提前致谢。


编辑:我的实际问题是 foreach 循环内的 var_dump 返回在下图中找到的值,该值有重复。它列出了 Test1 和 Test2 两次,而我只需要它们一次(并分别访问它们)。

http://img4.mukewang.com/61a08720000144b101490095.jpg

这就是为什么我认为我不需要循环它们 - 以避免重复。


largeQ
浏览 171回答 1
1回答

慕侠2389804

OP 是否仍然不清楚,因为可能$orderWC->get_items()是确实返回重复值(您没有在任何地方提及)的情况,您可以使用array_unique()在循环之前删除重复项。前任:$arr = array_unique($orderWC->get_items());foreach ($arr as $item_id => $item) {    $rank = wc_get_order_item_meta($item_id, 'Rank', true);    var_dump($rank);}
打开App,查看更多内容
随时随地看视频慕课网APP