繁体   English   中英

如何用循环填充多维数组

[英]How to fill multidimensional array with loop

我有一个数组:

$days = array(
    'Sunday',
    'Monday',
    'Tuesday',
    'Wednesday',
    'Thursday',
    'Friday',
    'Saturday'
);

我有一个查询,女巫正在从数据库中获取日期(day_name,ID); 对于我需要您的帮助:我想用下面的循环填充数组并使其具有关联性。 示例结果:

thursday => array(
    'ID' => 1,
    'name' => thursday
),
friday => array(
    'ID' => 1,
    'name' => thursday
),
....eg

我现在的代码:

$query='Query days from database';

foreach($query as $res)
{
    foreach($days as $day)
    {
        if($res == $day)
        {
            // now there I want to put informations
        }
    }
}

不需要嵌套循环。 将数组初始化为关联数组。 然后使用数据库查询中的name列来索引结果并分配给该元素。

$days = ['sunday' => [], 'monday' => [], ...];
foreach ($query as $row) {
    $days[$row['name']] = $row;
}

如果您无法初始化 arrays (如@Barmar Answer 中建议的那样),您需要查找数组键以用数组覆盖它。 像这儿:

$days=array('Sunday',
        'Monday',
        'Tuesday',
        'Wednesday',
        'Thursday',
        'Friday',
        'Saturday'
       );
    print_r($days);

//Example
$res[0]['name']="Sunday";
$res[0]['ID']="7";
$res[1]['name']="Monday";
$res[1]['ID']="1";

foreach($res as $k => $v){
$daykey = array_search($res[$k]['name'], $days);
if ($daykey !== false) {
    $days[$daykey]=array($res[$k]['name']=>array('ID'=>$res[$k]['ID'],'name'=>$res[$k]['name']));
} else {
    //do nothing... or whatever
}
} 
print_r($days);

暂无
暂无

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

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