繁体   English   中英

如何获取多维数组中的所有值

[英]How to get all values in multidimensional array

Array( 

     [0]=> Array 
         (
          [id] => 1
          [name] => Jane 
          [comment_id] => 1
          [post_id] => 1
        )
      [1] => Array
         (
          [id] => 2
          [name] => john 
          [comment_id] => 1
          [post_id] => 1
        )
      [2] => Array
         (
          [id] => 3
          [name] => anny 
          [comment_id] => 2
          [post_id] => 1
        )
      [3] => Array 
         (
          [id] => 4
          [name] => adrea 
          [comment_id] => 3
          [post_id] => 2
        )
) 

我希望它是这样的

Array
 (
      [id] => 1
      [name] => Jane 
      [comment_id] => 1
      [post_id] => 1
    )
     (
      [id] => 2
      [name] => john 
      [comment_id] => 1
      [post_id] => 1
    )
     (
      [id] => 3
      [name] => anny 
      [comment_id] => 2
      [post_id] => 1
    )
     (
      [id] => 4
      [name] => adrea
      [comment_id] => 3
      [post_id] => 2
    )

因此,如果我能够计算具有相同comment_id的所有值,即 2 具有相同的comment_id ,1 具有具有相同post_idcomment _id但是当我尝试计算每个值时
$query = mysqli_query " SELECT * FROM reply AS r JOIN comments AS c ON r.comment_id=c.id"; 我只有在打印出来时才会得到这个,我已经尝试了好几天了

 (
   [id] => 1
   [name] => Jane 
   [comment_id] => 1
   [post_id] => 1
  )

所以它只打印一条记录

它没有给我所有

$result = [];
foreach( $array as $row ) {
  if($row['comment_id'] === 1) {
     array_push($result, $row);
  }
}

当您的结果在 $array 中时,您可以通过 foreach 循环越过数组的第一个维度。 您示例中的每个条目([0]、[1] 等)都将分配给 $row,因此 $row 应该看起来像

      (
       [id] => 1
       [name] => Jane 
       [comment_id] => 1
       [post_id] => 1
      )

现在您查看每个条目,如果列 comment_id 与您想要的值匹配,当它被处理时将它放入一个新数组 $result 中。

最后 $result 应该看起来像 $array ( 2 dim array ) 但只有过滤后的条目在里面。 还有一个array_filter() function 可以找找,不过我觉得这个循环比较好理解

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM