PHP使用for循环遍历数组

cat*_*pus 2 php arrays foreach loops for-loop

我正在使用for循环来循环遍历数组,并且有一个我到目前为止无法弄清楚的问题.

我有3个循环,在循环中是常见的颜色名称.使用第一个for循环我遍历所有3个循环并找到常见的颜色名称,这很好.

第二部分是我难以理解的方法,如何将公共值数组分配到另一个数组中以显示这些常用值.

我知道我可以使用foreach循环来实现如下所示的技巧,但我试图看看如何使用for循环来做到这一点.

我怎样才能做到这一点?(不使用array_intersect)

代码:(这循环遍历所有数组并给出我的共同值)

$array1 = ['red', 'blue', 'green'];
$array2 = ['black', 'blue', 'purple', 'red'];
$array3 = ['red', 'blue', 'orange', 'brown'];

$value = [];

$array_total = array_merge($array1, $array2, $array3);

$array_length = count($array_total);

for ($i = 0; $i < $array_length; $i++) {
    if (!isset($value[$array_total[$i]])) {
        $value[$array_total[$i]] = 0;
    }

    $a = $value[$array_total[$i]]++;
}
//print_r($value); -- Array ( [red] => 3 [blue] => 3 [green] => 1 [black] => 1 [purple] => 1 [orange] => 1 [brown] => 1 )
Run Code Online (Sandbox Code Playgroud)

使用foreach循环可以工作,但想学习如何使用for循环:

$commonValues = [];

foreach ($value as $values => $count) {
    if ($count > 2) {
        $commonValues[] = $values;
    }
}
print_r($commonValues); -- Array ( [0] => red [1] => blue )
Run Code Online (Sandbox Code Playgroud)

Riz*_*123 6

这应该适合你:

只需使用array_keys()一个数组,您可以使用数字键访问关联数组

<?php

    $value = ["red" => 3, "blue" => 3, "green" => 1, "black" => 1, "purple" => 1, "orange" => 1, "brown" => 1];
    $count = count($value);
    $keys = array_keys($value);

    for($i = 0; $i < $count; $i++) {
        if ($value[$keys[$i]] > 2) {
            $commonValues[] = $keys[$i];
        }
    }

    print_r($commonValues);

?>
Run Code Online (Sandbox Code Playgroud)

输出:

Array ( [0] => red [1] => blue )
Run Code Online (Sandbox Code Playgroud)