2 개의 배열이 있습니다.
첫 번째는 $ teach_array이고 두 번째는 $ langs_array입니다.
각각의 값은 다음과 같습니다.
$ teach_array : Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
$ langs_array :Array ( [0] => 2 [1] => 3 )
$ langs_array에없는 $ teach_array의 모든 항목을 포함하는 새 배열을 반환하려고합니다.
따라서 최종 결과는 다음과 같아야합니다.Array ( [0] => 1 [3] => 4 [4] => 5 )
다음을 포함한 몇 가지 방법을 사용해 보았습니다.
$result = array_diff($teachArray, $language_1d_array);
이것은 여전히 $ teach_array의 모든 값을 반환합니다.
$result = array_diff_key($teachArray, $language_1d_array);
그러나 이것은 Array ( [2] => 3 [3] => 4 [4] => 5 )
정확하지 않은 것만 반환 합니다.
$result = array_values(array_diff_key($teachArray, $language_1d_array));
이렇게하면 옵션 2와 동일한 결과가 반환됩니다. 또한 array_diff_key 대신 array_diff 만 사용해 보았으며 옵션 1과 동일한 결과를 반환합니다.
두 배열 모두에서 var_dump를 수행했으며 결과는 다음과 같습니다.
$ teach_array : array(5) { [0]=> string(5) " 1 " [1]=> string(5) " 2 " [2]=> string(5) " 3 " [3]=> string(5) " 4 " [4]=> string(5) " 5 " }
$ lang_array :array(2) { [0]=> string(1) "2" [1]=> string(1) "3" }
이미 해결책을 찾았기를 바라지 만 다음 사항을 알려 드리고자 할 경우를 대비하여.
Blockquote 두 배열 모두에서 var_dump를 수행했으며 결과는 다음과 같습니다. $ teach_array : array (5) {[0] => string (5) "1"[1] => string (5) "2"[2] => string (5) "3"[3] => string (5) "4"[4] => string (5) "5"} $ lang_array : array (2) {[0] => string (1) "2"[1] => string (1) "3 "}
$ teach_array의 단일 값이 $ lang_array의 값과 일치하지 않습니다. 형식이 다른 값이 있기 때문에 하나의 배열에는 일치하려는 값 앞뒤에 공백이 포함 " 2 "
됩니다.
var_dump($teach_array) => array(5) { [0]=> string(5) " 4 " ... }
var_dump($lang_array) => array(5) { [0]=> string(1) "2" ... }
공백이 포함되어 있다고 생각합니다. 다시 시도하십시오 :
$diff = array_diff(array_map('trim', $teach_array), $lang_array);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다