【问题标题】:Reading Array Values in a dynamically created array在动态创建的数组中读取数组值
【发布时间】:2019-02-22 07:06:57
【问题描述】:

我创建了一个数组如下:

$this->db->order_by('mnth','desc');
$this->db->select("users.name,users.address,awards.*");
$this->db->from('users');
$this->db->join('awards', 'users.sno = awards.mem');
$res = $this->db->get();
$resbygroup = array();
foreach($res->result_array() as $row)
{
 $resbygroup[$row['mnth'].",".$row['yr']][]=($row['name'] . ", " . $row['address']);
}
if($res->num_rows()>0)
{
 return $resbygroup;
}
else
{
  return false;
}

目的是显示按月和年分组的获奖者名单。 看来,当我将 var_dump 放在返回的结果上时,我得到以下输出:

array(3) { ["9,2018"]=> array(5) { [0]=> string(6) "name1, addr1" [1]=> string(31) "name2, addr2" [2]=> string(30) "name3, addr3" [3]=> string(37) "name4, addr4" [4]=> string(46) "name5, addr5" } ["8,2018"]=> array(1) { [0]=> string(46) "name7, addr7" } ["6,2018"]=> array(1) { [0]=> string(24) "name8, addr8" } } 

我想获取结果并按月、按年显示。 我尝试了以下代码:

foreach($res as $r)
{
 for($x=0;$x<count($r);$x++)
 {
  echo"<br>";
  echo $r[$x];
  echo"<br>";
 }
}

它完美地显示了姓名、地址对,但我还想显示第 mn、yr 对。输出应该是这样的:

2018 年 9 月:姓名 1,地址 1 |姓名2,地址2 |姓名3、地址3等

2018 年 8 月:姓名 7,地址 7 |等等

请告诉如何实现这一点

【问题讨论】:

  • 只需在foreach() 循环中分配密钥,并在内部循环之前回显它。

标签: php arrays codeigniter


【解决方案1】:

请尝试以下代码:

foreach($res as $r=>$val)
{
 echo $r; // gives mnth,yr
 for($x=0;$x<count($val);$x++)
 {
 echo $val[$x]; //gives name,address
 }
}

【讨论】:

    猜你喜欢
    • 2021-05-19
    • 1970-01-01
    • 2019-05-19
    • 2020-11-08
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    • 2011-02-12
    • 2011-04-02
    相关资源
    最近更新 更多