从 $_POST 数组中删除第一个元素

问题描述 投票:0回答:3

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

这是我的 $_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" 开始..忽略第一对。

php arrays filtering
3个回答
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
)

0
投票

我不是 100% 确定你要做什么,但这会给你一个包含除第一个值之外的所有值的数组。

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

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


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

© www.soinside.com 2019 - 2024. All rights reserved.