Ich habe dieses Array:
$array = array("a" => "value of a", "b" => "value of b", "c" => "value of c",
"d" => "value of d");
diese liste der einzelteile:
$items = array ("a" => "value","b"=> "value","c"=> "value","d"=> "value");
Ich möchte prüfen, ob in $ array mindestens einer der Schlüssel von $ items vorhanden ist.
Ich habe es bisher ausprobiert, aber ich kann es nicht richtig machen:
if (array_key_exists("a", $array) || array_key_exists("b", $array)
|| array_key_exists("c", $array) || array_key_exists("d", $array)) {
}
jede Hilfe würde geschätzt werden.
Danke
Antworten:
7 für die Antwort № 1Was Sie brauchen, ist eine Kreuzung der Tasten zwischen zwei Arrays. Es heißt eine nette Funktion array_intersect_key()
http://php.net/manual/en/function.array-intersect-key.php
$array = array("a" => "value of a", "b" => "value of b", "c" => "value of c", "d" => "value of d");
$items = array ("a" => "value","b"=> "value","c"=> "value","d"=> "value");
print_r(array_intersect_key($array, $items));
0 für die Antwort № 2
Ist das wonach Sie suchen?
function search_keys($needle, $haystack) {
$matches = array();
foreach($needle as $key => $value) {
if(array_key_exists($key, $haystack)) {
$maches[$key] = $haystack[$key];
}
}
return $matches;
}
$matches = seach_keys($items, $array);
0 für die Antwort № 3
Erstellen Sie eine Funktion wie folgt:
function check_keys ($items, $array){
$return = false;
foreach (array_keys($items) as $key){
if (isset($array[$key])){
$return = true;
break;
}
}
return $return;
}
Nenn es so:
// returns true or false
var_dump (check_keys ($items, $array));
0 für die Antwort № 4
Sie brauchen wahrscheinlich so etwas
$array = array("a" => "value of a", "b" => "value of b", "c" => "value of c", "d" => "value of d");
$items = array ("a" => "value","b"=> "value","c"=> "value","d"=> "value");
foreach($items as $key=>$value){
if (array_key_exists($key,$array)){
//your code
}
}