我正在尝试循环遍历数组以获取某些值并将它们设置为等于变量。
这是我的 $_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" 开始..忽略第一对。
使用@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
)
我不是 100% 确定你要做什么,但这会给你一个包含除第一个值之外的所有值的数组。
$vals = array_values(array_slice($_POST, 1));
array_values
部分是重置数组的索引,以便使用[0]访问$vals
将返回“1”。
<?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 查询中使用它。