首页 > 解决方案 > 遍历多个数组并从每个数组中提取数据

问题描述

我有一个数组,其中包含多个数组(现在为 3 个)。里面的每个数组都有多个帖子对象。

我正在尝试遍历这 3 个数组,每次从其中一个中拉出 1 个 post 对象,然后将它推入一个新的空数组,我创建的顺序与我一个接一个地拉动它的顺序相同。

// dynamic number
$count_posts_query = 9

//the array that contains 3 arrays with posts in it (dynamic can be more
)
$term_posts = array(
[0] => array( <--- contains 26 posts objects 
   [0] => {post object}.
   [1] => {post object},
   [2] => {post object},
   [... and so on 26 objects] 
 ) 
[1] => array( <--- contains 58 posts objects 
   [0] => {post object}.
   [1] => {post object},
   [2] => {post object},
   [... and so on 58 objects] 
 )
[2] => array( <--- contains 103 posts objects 
   [0] => {post object}.
   [1] => {post object},
   [2] => {post object},
   [... and so on 103 objects] 
 )
),

for ( $i = 0; $i < $count_posts_query; $i ++ ) {
 array_push( $new_terms_arrays, $term_posts[$i][ $i ] );
}

这个循环的问题是 $i 不正确,它只运行了 3 次,每次输入数组的位置和具有相同 $i 编号的对象,然后其他 6 个对象为空且不正确升序

错误图片 - https://i.ibb.co/4PxXxgw/Screenshot-at-Aug-10-09-15-20.png

标签: phparrayswordpress

解决方案


如果要遍历数组中的 3 个项目,可以使用$term_posts数组本身的计数而不是硬编码$count_posts_query = 9

for ($i = 0; $i < count($term_posts); $i ++) {
 array_push($new_terms_arrays, $term_posts[$i][$i]);
}

正如Nigel Ren指出的那样,请注意您$i对两个指数都使用了 的值。对于第一个工作,因为它基于$term_posts数组的计数。

出现的问题是您对第二个数组使用相同的递增索引,但不能保证该索引存在。

如果您想每次拉出 1 个帖子对象,则必须确保使用现有索引。


推荐阅读