首页 > 解决方案 > 检查数组键并替换是否存在 PHP

问题描述

我有以下数组($result)

Array
(
    [check_1] => Array
        (
            [0] => male
            [1] => female
        )

    [email] => abc@xyz.com
)

我只想检查

  1. 数组键是否包含单词“check”(id是动态的,id可以是1或2 ...)
  2. 如果存在“检查”键,则所有值(复选框)都应类似于“男性,女性”
  3. 我想用“user_1”替换“check_1”

我想要像下面这样的输出

Array
(
    [user_1] => Array
        (
           [0] male,female
        )
  
)

我怎样才能做到这一点 ?提前致谢

标签: phparraysloops

解决方案


您可能必须使用带有str_containsstr_replace和等函数的循环implode进行连接。

$data = [
            'check_1'=>["male"],
            'email'=>["abc@xyz.com"],
            'check_3'=>["male", "female"],
        ];
$res = [];
foreach ($data as $key => $value) {
    if(strrpos($key, "check")!==false){
        $res[str_replace("check", "user", $key)] = implode(', ', $value);
    }
}
echo "<PRE>";
print_r($res);
/*
Array
(
    [user_1] => male
    [user_3] => male, female
)
*/

推荐阅读