¿Cómo acceder a las claves de primer nivel de una matriz 2d con un bucle foreach? [duplicate]

2 minutos de lectura

avatar de usuario de matthewb
matthewb

¿Cómo accedo a la clave de primer nivel de una matriz bidimensional usando un bucle foreach?

tengo un $places matriz como esta:

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

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

Este es mi código de vista que recorre la matriz:

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

<?php endforeach ?>

donde llamo key($site)Quiero tener Philadelphiapero estoy recibiendo place_name de cada fila.

Puede acceder a sus claves de matriz de esta manera:

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

Como dijo Pekka anteriormente

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

También es posible que desee probar una función recursiva

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 />";
        }
    }
}

Avatar de usuario de Melih Yıldız
Melih Yıldız’

También puedes usar array_keys() . Amigable para novatos:

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

for($i=0; $i < $arraySize; $i++) {
    echo '<option value="' . $keys[$i] . '">' . $arrayToWalk[$keys[$i]] . '</option>';
}

  • Código más simple y eficiente una vez que tenga $keys: foreach ($keys as $key) ... $key ... $arrayToWalk[$key] ... Esto es útil cuando $keys podrían ser solo algunas de las claves en la matriz; de lo contrario foreach ($arrayToWalk as $key => $value) ... es más fácil de usar y un poco más rápido.

    – El fabricante de herramientas Steve

    3 de diciembre de 2020 a las 0:09


avatar de usuario de kumar
kumar

foreach($shipmentarr as $index=>$val){    
    $additionalService = array();

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

        array_push($additionalService,$value);

    }
}

¿Ha sido útil esta solución?