Ответ 1
Что-то вроде этого?
foreach ($Offer as $key => $value) {
$offerArray[$key] = $value[4];
}
Я хочу создать пары ключ-значение в массиве внутри 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
Что-то вроде этого?
foreach ($Offer as $key => $value) {
$offerArray[$key] = $value[4];
}
Создайте пары ключ-значение внутри foreach следующим образом:
function createOfferUrlArray($Offer) {
$offerArray = array();
foreach ($Offer as $key => $value) {
$offerArray[$key] = $value[4];
}
return $offerArray;
}
Создайте пары ключевых значений в командной строке 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
В PHP >= 5.3 это можно сделать следующим образом:
$offerArray = array_map(function($value) {
return $value[4];
}, $offer);
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;
}