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

我想检查数据库中的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;

}


梦里花落0921
浏览 114回答 4
4回答

qq_笑_17

您可以使用而不是ifswitchif (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: ...这不符合您的目的

三国纷争

你在这里有很多需要解决的问题。首先,让我们假设这是一个相当标准的数组:$options$options = ['basement', 'bathtub'];现在,您将设置为一个数组来保存结果:$features$features = array();你不能在语句中做很多评估。在语句中,您尝试对“地下室”进行两次测试,而您需要做的就是让信息是否存在。只需测试每个价值购买循环选项并测试价值switchin_array("basement", $options) && "basement" != false:switchforeach($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)

慕虎7371278

您可以使用而不是ifswitchif (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: ...这不符合您的目的

湖上湖

假设您有选项的值列表,则可以创建一个包含选项和值组合的数组。然后使用 仅匹配所选的选项(用于使选项值改为键。最后使用删除密钥...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
打开App,查看更多内容
随时随地看视频慕课网APP