【问题标题】:PHP Foreach - Select Specific Items instead of Keys of an ArrayPHP Foreach - 选择特定项目而不是数组的键
【发布时间】:2020-06-10 16:43:38
【问题描述】:

我一直在研究这个 MySql 和 PHP 代码:

//SQL para cálculo de trabajos acumulados
    $torsAC_sql = mysqli_query($db,"select * from reports WHERE TORS_PROYECTO = '$IDTORS' AND IDUSER = '$user_check' AND MONTH(DATEREG) = MONTH(CURDATE()) AND YEAR(DATEREG) = YEAR(CURDATE()) ORDER BY DATEREG DESC LIMIT 1");
    $row9 = mysqli_num_rows($torsAC_sql);
    $rowC = mysqli_fetch_array($torsAC_sql,MYSQLI_ASSOC);
    if($row9 > 0){
       $arrayAcumulados[] = array($rowC["TORS_PROYECTO"] => $rowC["DATEREG"]); 
    }else{
       echo "Error";
    }
    echo print_r($arrayAcumulados);

结果,我得到以下数组:

`Array ( 
[0] => Array ( [576] => 2020-02-25 ) 
[1] => Array ( [417] => 2020-02-19 ) 
[2] => Array ( [417] => 2020-02-19 ) 
[3] => Array ( [417] => 2020-02-19 ) 
[4] => Array ( [549] => 2020-02-07 ) 
[5] => Array ( [31] => 2020-02-07 )
)`

我使用array_unique php 函数删除了重复项,得到以下结果:

`$a = array_unique($arrayAcumulados, SORT_REGULAR);
Array ( 
[0] => Array ( [576] => 2020-02-25 ) 
[1] => Array ( [417] => 2020-02-19 ) 
[4] => Array ( [549] => 2020-02-07 ) 
[5] => Array ( [31] => 2020-02-07 )
)`

我想使用 foreach 获取日期值而不是数组上的键而不是重复项。

foreach($a as $i => $item) {
     //Insert code to get Date Value                               
}

如果我尝试echo $a[$item],结果是一个空数组。

【问题讨论】:

  • 您也可以在数据库中进行排序和去重。如果要获取第一项,请使用echo reset($item);

标签: php mysql arrays foreach iteration


【解决方案1】:

如果您不再需要密钥,请更改此行

$arrayAcumulados[] = array($rowC["TORS_PROYECTO"] => $rowC["DATEREG"]); 

$arrayAcumulados[] = $rowC["DATEREG"];

否则,您需要为每个循环使用嵌套。

foreach($a as $i => $item) {
    foreach($item as $key=> $date){
     echo  $date;
   }                    
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-15
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多