Цикл по массиву - PullRequest
       3

Цикл по массиву

0 голосов
/ 09 августа 2011

Я пытаюсь перебрать массив, чтобы принять определенные значения и установить их равными переменной.

Вот мой var_dump в моем массиве $ _POST

array(5) { ["voter"]=> string(2) "22" [1]=> string(1) "1" [2]=> string(1) "2" [3]=> string(1) "3" ["vote"]=> string(4) 

Я хочу, чтобы ключи из пары ключ => значение из 2-й пары ключ-значение были включены, а затем установить ее в переменную. Как бы я этого достиг?

Итак, из [1] -> string (1) "1" on out .. Игнорировать первую пару.

Спасибо!

Ответы [ 3 ]

1 голос
/ 09 августа 2011

Использование метода, предоставленного @ Xeon06, безусловно, будет работать, но потребует, чтобы данные $ _POST были в указанном вами порядке, и если этот порядок изменится, то будут и результаты.Этот метод не заботится о заказе.

function ext($array, array $keys, $default = NULL)
{
    $found = array();
    foreach ($keys as $key)
    {
        $found[$key] = isset($array[$key]) ? $array[$key] : $default;
    }
    return $found;
}

$keys = array(1, 2, 3, 'vote');
$my_vars = ext($_POST, $keys);

function ext($array, array $keys, $default = NULL) {
    $found = array();
    foreach ($keys as $key) {
        $found[$key] = isset($array[$key]) ? $array[$key] : $default;
    }
    return $found;
}

$_POST = array('voter' => 'TEST', 1 => 'ONE', 2 => 'TWO', 3 => 'THREE', 'vote' => 'HAMBURGER'); 
$keys = array(1, 2, 3, 'vote');
$my_vars = ext($_POST, $keys);
print_r($my_vars);

ВЫХОД
Массив

(
    [1] => ONE
    [2] => TWO
    [3] => THREE
    [vote] => HAMBURGER
)
0 голосов
/ 09 августа 2011
<?php

$str = '';

$arr = array(
    'voter' => '22',
    1 => '1',
    2 => '2',
    3 => '3', 
    'vote' => 'smth',
);

$arr = array_slice($arr, 1);

foreach($arr as $i) {
    $str .= 'id=' . $i . ' ';
}

echo $str; // id=1 id=2 id=3 id=smth

Понятия не имею, как бы вы использовали его в одном SQL-запросе.

0 голосов
/ 09 августа 2011

Я не уверен на 100% в том, что вы пытаетесь сделать, но это даст вам массив, содержащий все значения, кроме первого.

$vals = array_values(array_slice($_POST, 1));

Часть array_values предназначена для сброса индексов вашего массива, чтобы при обращении к $vals с [0] возвращалось "1".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...