Quiero crear un pares clave-valor en una matriz dentro de un foreach. Aquí es lo que tengo hasta ahora:

function createOfferUrlArray($Offer) {
    $offerArray = array();

    foreach ($Offer as $key => $value) { 
        $keyval = array($key => $value[4] );

        array_push($offerArray,$keyval);
    }

    return $offerArray;
}   

Si declaro la matriz dentro del foreach, se sobrescribe en cada iteración, sino que la definición fuera del foreach no funciona bien y hace trillizos:

array[0] => key => value
array[1] => key => value 

Cómo puedo hacer para que solo me dan los pares clave-valor como este?

key => value
key => value
InformationsquelleAutor BobFlemming | 2011-05-10

5 Comentarios

  1. 4

    Crear valor de clave de pares en el phpsh línea de comando como este:

    php> $keyvalues = array();
    php> $keyvalues['foo'] = "bar";
    php> $keyvalues['pyramid'] = "power";
    php> print_r($keyvalues);
    Array
    (
        [foo] => bar
        [pyramid] => power
    )

    Obtener el recuento de los principales pares de valores:

    php> echo count($offerarray);
    2

    Conseguir las llaves como una matriz:

    php> echo implode(array_keys($offerarray));
    foopyramid
  2. 3

    Crear pares clave-valor dentro de un foreach como este:

    function createOfferUrlArray($Offer) {
        $offerArray = array();
    
        foreach ($Offer as $key => $value) {
            $offerArray[$key] = $value[4];
        }
    
        return $offerArray;
    }
  3. 1

    En PHP >= 5.3 se puede hacer de la siguiente manera:

    $offerArray = array_map(function($value) {
        return $value[4];
    }, $offer);
  4. -1
    function createOfferUrlArray($Offer) {
        $offerArray = array();
        foreach ($Offer as $key => $value) { 
            $offerArray[$key] = $value[4];
        }
        return $offerArray;
    }

    o

    function createOfferUrlArray($offer) {
        foreach ( $offer as &$value ) {
            $value = $value[4];
        }
        unset($value);
        return $offer;
    }

Dejar respuesta

Please enter your comment!
Please enter your name here