web-dev-qa-db-fra.com

PHP valeur de la clé de boucle foreach

J'exécute cet appel de base de données pour obtenir un tableau multidimensionnel. J'essaie d'obtenir les clés de chaque mais lorsque j'essaie, il apparaît vide ou sous forme de tableau.

$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;

voici mon php qui passe en boucle:

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

<?php endforeach ?>

Aussi, quand je lance un test qui crache le tableau, voici le résultat, ce que j'essaye de rendre, c'est (Philadelphia]

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

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

Vous pouvez accéder à vos clés de tableau de la manière suivante:

foreach ($array as $key => $value)
315
Pekka 웃

Comme Pekka a déclaré ci-dessus

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

Aussi, vous voudrez peut-être essayer une fonction récursive

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 />";
        }
    }
}
30
Phill Pafford
foreach($shipmentarr as $index=>$val){    
    $additionalService = array();

    foreach($additionalService[$index] as $key => $value) {

        array_Push($additionalService,$value);

    }
}
6
kumar

Vous pouvez également utiliser array_keys(). Débutant amical:

$keys = array_keys($arrayToWalk);
$arraySize = count($arrayToWalk);
for($i=0;$i<$arraySize;$i++){
    echo "<option value=\"".$keys[$i]."\">".$arrayToWalk[$keys[$i]]."</option>";
}
6
Melih Yıldız'