亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP將逗號分隔的字符串與數組值匹配,但順序不正確

PHP將逗號分隔的字符串與數組值匹配,但順序不正確

PHP
慕的地6264312 2022-10-14 15:08:33
我有一個可能很簡單的查詢,但在任何地方都找不到確切的解決方案。有一個逗號分隔的字符串,例如1,3和一個具有值的數組,例如1,3,2 OR 3,1,4。我需要一個函數,當我嘗試在數組中搜索此字符串時,它對兩個記錄都返回 TRUE,因為數字 1 和 3 存在于兩個數組值中,但順序不同。我嘗試使用array_search,strpos甚至explode首先在數組中創建字符串,然后array_intersect與兩個數組相交,希望獲得正匹配,但始終只返回值為 1、3、2 而不是 3、1、4 的數組。任何建議或指示都會非常有幫助。提前謝謝了。=======================PS:這是我的代碼        //Enter your code here, enjoy!$st_array = array();$st_data1['id'] = 1;$st_data1['title'] = 'Jane doe';$st_data1['disk'] = '1,3,2';array_push($st_array, $st_data1);$rc_disk_id = '1,3';$st_data2['id'] = 2;$st_data2['title'] = 'Jane Smith';$st_data2['disk'] = '3,1,4';array_push($st_array, $st_data2);foreach($st_array as $st_data) {    $rc_disk_ids = explode(",",$rc_disk_id);    $match = array_intersect($rc_disk_ids, $st_data);    if (!empty($match)) {        echo "\nFound\n";        print_r($st_data);    }    else {        echo "Nope!";    }}
查看完整描述

2 回答

?
互換的青春

TA貢獻1797條經驗 獲得超6個贊

您的代碼非常接近。您還需要explode中的磁盤 ID 列表$st_data,然后用于array_diff檢查該列表中是否存在所有$rc_disk_ids

foreach($st_array as $st_data) {

    $rc_disk_ids = explode(",",$rc_disk_id);

    $st_disk_ids = explode(',', $st_data['disk']);

    $match = array_diff($rc_disk_ids, $st_disk_ids);

    if (empty($match)) {

        echo "\nFound\n";

        print_r($st_data);

    }

    else {

        echo "Nope!";

    }

}

樣本數據的輸出:


Found

Array

(

    [id] => 1

    [title] => Jane doe

    [disk] => 1,3,2

)


Found

Array

(

    [id] => 2

    [title] => Jane Smith

    [disk] => 3,1,4

)

3v4l.org 上的演示


查看完整回答
反對 回復 2022-10-14
?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

也許您可以嘗試搜索字符串而不是比較數組。


$strArr = explode(",", "1,3");

$arrToBeSearched = ["1", "3", "2"];


foreach($strArr as $val){

    if(!in_array($val, $arrToBeSearched)){

        return FALSE;

    }

}


// If it reaches here, then all values in 

//the $strArr where found in the 

//$arrToBeSearched

return TRUE;


查看完整回答
反對 回復 2022-10-14
  • 2 回答
  • 0 關注
  • 156 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號