Подтвердить что ты не робот

PHP создает пары ключ => значение в пределах foreach

Я хочу создать пары ключ-значение в массиве внутри foreach. Вот что я до сих пор:

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

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

        array_push($offerArray,$keyval);
    }

    return $offerArray;
}   

Если я объявляю массив внутри foreach, он перезаписывает его на каждой итерации, но определение его вне foreach тоже не работает и вызывает триплеты:

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

Как это сделать, поэтому я получаю только пары ключ-значение?

key => value
key => value
4b9b3361

Ответ 1

Что-то вроде этого?

foreach ($Offer as $key => $value) { 
  $offerArray[$key] = $value[4];
}

Ответ 2

Создайте пары ключ-значение внутри foreach следующим образом:

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

    foreach ($Offer as $key => $value) {
        $offerArray[$key] = $value[4];
    }

    return $offerArray;
}

Ответ 3

Создайте пары ключевых значений в командной строке phph следующим образом:

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

Получить количество пар значений ключа:

php> echo count($offerarray);
2

Получить ключи как массив:

php> echo implode(array_keys($offerarray));
foopyramid

Ответ 4

В PHP >= 5.3 это можно сделать следующим образом:

$offerArray = array_map(function($value) {
    return $value[4];
}, $offer);

Ответ 5

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

или

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