dalmariko
@dalmariko
Ни рыба ни мясо. Програмясо

Как заменить ключ следующим значением?

Нужно чтобы , array(1, 2, 3, 4, 5, 6),
превратится в ​ array(1=>2, 3=>4, 5=>6)​

$ctn=count($arr)-1;

for($key=0;$key<=$ctn;$key++)
{
    $arr[$key];
}


$arr[$key]=$value;
хочу чтобы запоминало значение потом подменять их.
PHP матюкается.
foreach ($arr as $key=>$value)
{
// походу не совсем удобен для этого. или я что то не понимаю хотелось бы услышать что
}

не встроенной функцией. Непойму куда ковырять.
  • Вопрос задан
  • 189 просмотров
Решения вопроса 2
uDenX
@uDenX
PHP Developer
$array = [1,2,3,4,5,6,7];
$newArrray = [];
$count  = count($array);

for($i = 1; $i <= $count; $i+=2) {
    if (!array_key_exists($i, $array)) {
        $array[$i] = 0;
    }
    
    $newArray[$array[$i-1]] = $array[$i];
}
    
var_dump($newArray);
Ответ написан
<?php

$data = array(1,2,3,4,5,6);
$newData = array();

foreach($data as $key => $value) {
    if ( ($key+1)%2 ) {
        $newData[$value] = $data[$key+1];
    }
}
print_r($newData);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
sergiks
@sergiks Куратор тега PHP
♬♬
Неплохо использовать встроенные функции array_chunk() и array_reduce() :
<?php
function pair( $arr) {
	function keyValue( $result, $item) {
		$result[ $item[0]] = isset($item[1]) ? $item[1] : null;
		return $result;
	}
	return array_reduce( array_chunk($arr, 2), 'keyValue', []);
}

print_r( pair( [1,2,3,4,5] ));
/* Array (
    [1] => 2
    [3] => 4
    [5] => 
) */
Ответ написан
Комментировать
dalmariko
@dalmariko Автор вопроса
Ни рыба ни мясо. Програмясо
Мой правильный ответ

function key_next_value($arr = array(1,2,6,5,10,8))
{
    if (count($arr) % 2 == 0) {
        $ctn = count($arr);
        $mini_mass = [];
        $key = '';
        $value = '';

        for($i=1;$i<=$ctn;$i++)
        {
            if ($i%2 == true)
            {
                $mass_paryty_element=$arr[$i];
                $key = $mass_paryty_element;
            }
            else {
                $mass_noparyty_element=$arr[$i];
                $value = $mass_noparyty_element;
            }
            $mini_mass[$key]=$value;
        }



        return $mini_mass;
    }
    else
    {   echo "<br>";
        echo "<b>Массив нечётной длинны! Дайте мне массив чётной длинны!</b>";
    }
}
print_r (key_next_value());
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы