Wie ermittelt PHP, ob die Schlüsselwerte im Array denselben Schlüsselnamen verwenden und gibt den aktuellen Schlüsselwert mit demselben Schlüsselnamen aus?
typecho
typecho 2017-06-24 09:42:20
0
1
880
<?php
$arr=array(
0=>array(
    1=>'鼠',
    15=>'牛',
    29=>'虎'
),
30=>array(
    50=>'兔',
    59=>'龙',
    65=>'蛇'
);
?>

Der Code ist wie oben. Wie kann festgestellt werden, ob 50, 59 und 65 zum selben Schlüsselnamen gehören, und der Text unter allen 30 Schlüsselnamen ausgegeben werden? Vielen Dank im Voraus. Ich habe dieses Problem einen Tag lang nicht recherchiert und weiß nicht, wie ich es beurteilen soll.

typecho
typecho

Following the voice in heart.

Antworte allen(1)
学习ing
$target = [50, 59, 65];
foreach($arr as $index => $value) { // 遍历整个$arr
    $keys = array_keys($value); // 获取对应项的键值

    $check = true; // 默认为真,如果下面遍历中出现一个假值则为假,否则真值表示所有的目标键名都在此项中

    foreach($target as $target_key) { // 遍历所有的目标键名
        if(!in_array($target_key, $keys)) { // 如果发现目标键名不在当前项键名$keys中,则设置$check为假值,并直接跳出
            $check = false;
            break;
        }
    }

    if($check) { // 通过了键名检测,那么这就是要找的项,输出
        print_r($index);
        print_r($value);
    }
}

输出:

30Array ( [50] => 兔 [59] => 龙 [65] => 蛇 )

(由于代码用的print_r没加换行所以内容全在一行显示了)

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage