循环遍历数组

时间:2011-08-09 15:11:25

标签: php foreach

我试图遍历数组以获取某些值并将它们设置为等于变量。

这是我的$ _POST数组

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

我想要钥匙的钥匙=>来自第二个键值对的值对,然后将其设置为变量。我怎么做到这一点?

所以从[1] - > string(1)“1”on out..Ignore第一对。

谢谢!

3 个答案:

答案 0 :(得分:1)

使用@ 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
)

答案 1 :(得分:0)

我不是100%肯定你正在尝试做什么,但这会给你一个包含所有值的数组,但第一个。

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

array_values部分是重置数组的索引,因此使用[0]访问$vals将返回“1”。

答案 2 :(得分:0)

<?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查询中使用它。