Как я могу определить последний элемент в цикле foreach? - PullRequest
0 голосов
/ 24 мая 2018

Это мое для каждого цикла

foreach ($row as $key => $value) {
    echo $key;
}

Результат:

one
four
end
three
two

Теперь я хочу, чтобы $ key end всегда был в конце.Возможно ли это?

Что-то вроде

  foreach ($row as $key => $value) {
        if($key == "end"){
           echo $key as last;
        } else {
           echo $key;
        }
    }

Так что результат будет

one
four
three
two
end

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Если вы хотите создать пользовательскую функцию, передайте свой массив функции.Внутри этой функции вы можете фильтровать данные так, как вы хотите. Я создал функцию formatRow (), она просто удаляет ключ, который вам нужен, наконец, из массива, и вставляет его снова, так как новое значение всегда вставляется в концемассив, вы получите желаемый результат

    $row = array(

    'one'=>"data",
    'four'=>"data",
    'end'=>"enddata",
    'three'=>"data",
    'two'=>"data",

    );

    $formatted_row = formatRow($row,'end');

    echo "<pre>";
    var_dump($formatted_row);


    //output 

    // array(5) {
    //   ["one"]=>
    //   string(4) "data"
    //   ["four"]=>
    //   string(4) "data"
    //   ["three"]=>
    //   string(4) "data"
    //   ["two"]=>
    //   string(4) "data"
    //   ["end"]=>
    //   string(7) "enddata"
    // }



function formatRow ($row,$key_that_you_need_last) {
    if (array_key_exists($key_that_you_need_last,$row)) {
            $value = $row["$key_that_you_need_last"];
        unset($row["$key_that_you_need_last"]);
        $row["$key_that_you_need_last"] = $value;
    }
    return $row;  
}

Если вы хотите добиться большего, это ссылки, по которым вы, возможно, захотите перейти. array_map array_walk

0 голосов
/ 24 мая 2018

Как указано в моем комментарии, просто добавьте статическое значение в конец вашего array

array_push($row, "end");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...