首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP foreach循环键值

PHP foreach循环键值
EN

Stack Overflow用户
提问于 2009-12-03 02:00:25
回答 4查看 599.2K关注 0票数 159

我正在运行这个DB调用来获取多维数组,我试图获取每个数组的键,但当我尝试时,结果是空的或数组。

$root_array = array();
$sites = $this->sites($member_id);
foreach ($sites as $site){
    $records = $this->db->select('p.name as place_name, p.id as place_id,p.active as place_status')
                ->from('places p')
                ->join('members_permissions pm','pm.sites_id = p.sites_id and pm.members_id ='.$member_id)
                ->where('p.active', 0)
                ->get();

    $places = $records->result_array();
    $places['name'] = $site['name'];
    foreach($places as $place){
       $root_array[$site['name']][] = $place;
    }

}
return $root_array;

下面是我循环通过的php:

<?php foreach($places as $site): ?>
    <h5><?=key($site)?></h5>
        <?php foreach($site as $place): ?>
            <h6><?=$place['place_name']?></h6>
        <?php endforeach?>

<?php endforeach ?>

同样,当我运行一个测试,它只是输出数组,这就是结果,我试图呈现的是费城

[Philadelphia] => Array
        (
            [0] => Array
                (
                    [place_name] => XYX
                    [place_id] => 103200
                    [place_status] => 0
                )

            [1] => Array
                (
                [place_name] => YYYY
                [place_id] => 232323
                [place_status] => 0
            )
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-12-03 02:03:24

您可以像这样访问数组密钥:

foreach ($array as $key => $value)
票数 438
EN

Stack Overflow用户

发布于 2009-12-03 02:33:35

正如Pekka上面所说的那样

foreach ($array as $key => $value)

此外,您可能还想尝试使用递归函数

displayRecursiveResults($site);

function displayRecursiveResults($arrayObject) {
    foreach($arrayObject as $key=>$data) {
        if(is_array($data)) {
            displayRecursiveResults($data);
        } elseif(is_object($data)) {
            displayRecursiveResults($data);
        } else {
            echo "Key: ".$key." Data: ".$data."<br />";
        }
    }
}
票数 38
EN

Stack Overflow用户

发布于 2014-03-07 11:30:46

您也可以使用array_keys()。新手友好:

$keys = array_keys($arrayToWalk);
$arraySize = count($arrayToWalk); 

for($i=0; $i < $arraySize; $i++) {
    echo '<option value="' . $keys[$i] . '">' . $arrayToWalk[$keys[$i]] . '</option>';
}
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1834703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档