PHP, количество массивов, комбинация двух foreach - PullRequest
0 голосов
/ 28 июня 2018

Я решаю этот непонятный сценарий, я даже не знаю, с чего начать. Может быть, кто-то поможет мне. Я получил пример двух массивов:

$a1 = array(1,2,3 ...);
$a2 = array(4,5,6 ...);

мне нужно, чтобы первый массив делил все значения на itsel для этого я хотел бы получить скрипт, который будет работать следующим образом (значения массивов можно сохранить под тем же именем, потому что в любом случае они будут продолжены, может быть новой переменной, в этом примере я использую новый). Таким же образом переменная может быть выделена сама, чтобы получить 1, но предпочитаю не делать этого. Пример подсчета.

$b1 = array([0]/[1], [0]/[2], [0]/[3], [1]/[0], [1]/[2], [1]/[3], [2]/[0], [2]/[1], [2]/[3], [3]/[0], [3]/[1], [3]/[2]);
$b2 = array( *** The same like $b1 ***);

В конце будет идти foreach для записи значений в таблицу, это я уже решил

echo "<table><tr>";
    foreach($b1 as $key1 => $val1){
        foreach($b2 as $key2 =>$val2){

           echo "<td>".$key1.$key2."<br/>".val1*val2."</td>";

        }
        echo "</tr><tr>"; 
      }
    echo "</tr></table>"

Кто-нибудь может мне помочь с этим вопросом?

1 Ответ

0 голосов
/ 28 июня 2018

Делать деление каждого элемента относительно просто. Вы делаете это с 2 для петель. Однако следует помнить одну вещь: избегать деления на 0. У вас есть элементы, которые могут быть равны 0? Если да, хотите ли вы, чтобы результат деления был равен 0 или был таким же, как у числителя? код, который я показываю ниже, предполагает последний:

function getDivided($array) {
    $length = count($array);
    $return = [];
    for ($i = 0; $i < $length; $i++) {
        for ($j = 0; $j < $length; $j++) {
            if ($i === $j) continue;
            //the following assumes that the values in the array are never < 1 Change this according to your needs
            $return[] = $array[$i] / max($array[$j], 1);

            //Another option is to use a conditional
            $return[] = $array[$j] === 0 ? $array[$i] : $array[$i] / $array[$j];
        }
    }

    return $return;
}

$b1 = getDivided($a1);
$b2 = getDivided($a2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...