为了账号安全,请及时绑定邮箱和手机立即绑定

PHP:如果数组中存在值,请分配一个新值并将所有值推送到新数组

PHP:如果数组中存在值,请分配一个新值并将所有值推送到新数组

PHP
梦里花落0921 2022-09-12 13:13:19
我想检查数据库中的JSON数组是否有值。(例如,“电梯”= 120)如果它确实存在,我需要将其推送到一个名为$features的数组,以便我以后可以运行一个脚本来创建WordPress帖子,其中这个外部数字(ID)数组入到帖子中,就像这个例子一样:$my_post = array('post_title'    => $post_title,'tax_input'    => array(               'property_category' => array( $features )主代码(我知道我可能很远):$options = explode(",",$db->options); $features = array();        switch ($features) {    case in_array("basement", $options) && "basement" != false:        array_push($features,145);        break;    case (in_array("bathtub", $options) && "bathtub" != false):        array_push($features,167);        break;    case (in_array("boiler", $options) && "boiler" != false):        array_push($features,105);        break;}
查看完整描述

4 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

您可以使用而不是ifswitch


if (in_array("basement", $options)) {

    array_push($features,145);

}

if (in_array("bathtub", $options)) {

    array_push($features,167);

}

if(in_array("boiler", $options)) {

    array_push($features,105);

}

因为 switch 语句的计算结果例如为


switch ([]) {

   case true: ...

   case false: ...

   case true: ...

这不符合您的目的


查看完整回答
反对 回复 2022-09-12
?
三国纷争

TA贡献1804条经验 获得超7个赞

你在这里有很多需要解决的问题。首先,让我们假设这是一个相当标准的数组:$options


$options = ['basement', 'bathtub'];

现在,您将设置为一个数组来保存结果:$features


$features = array();

你不能在语句中做很多评估。在语句中,您尝试对“地下室”进行两次测试,而您需要做的就是让信息是否存在。只需测试每个价值购买循环选项并测试价值switchin_array("basement", $options) && "basement" != false:switch


foreach($options as $option) {

    switch ($option) {

        case "basement":

            array_push($features,145);

            break;

        case "bathtub":

            array_push($features,167);

            break;

        case "boiler":

            array_push($features,105);

            break;

    }

}

结果如下:


print_r($features);

哪个返回


Array

(

    [0] => 145

    [1] => 167

)


查看完整回答
反对 回复 2022-09-12
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

您可以使用而不是ifswitch


if (in_array("basement", $options)) {

    array_push($features,145);

}

if (in_array("bathtub", $options)) {

    array_push($features,167);

}

if(in_array("boiler", $options)) {

    array_push($features,105);

}

因为 switch 语句的计算结果例如为


switch ([]) {

   case true: ...

   case false: ...

   case true: ...

这不符合您的目的


查看完整回答
反对 回复 2022-09-12
?
湖上湖

TA贡献2003条经验 获得超2个赞

假设您有选项的值列表,则可以创建一个包含选项和值组合的数组。然后使用 仅匹配所选的选项(用于使选项值改为键。最后使用删除密钥...array_intersect_key()array_flip()array_values()


$options = ['basement', 'bathtub'];

$optionValues = ['basement' => 145, 'bathtub' => 167, 'boiler' => 105];


$features = array_values(array_intersect_key($optionValues, array_flip($options)));


print_r($features);

给。。。


Array

(

    [0] => 145

    [1] => 167

)

这样做的好处是,当您/如果您需要更改映射时,您只需要更新数组。$optionValues


查看完整回答
反对 回复 2022-09-12
  • 4 回答
  • 0 关注
  • 108 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信