PHP, сравнивающий все значения внутри столбца многомерного массива с переменной - PullRequest
0 голосов
/ 03 июня 2018

У меня есть многомерный массив и переменная для сравнения:

$var = 1;
$arr = array(
    0 => array(
        'id' => 5
        'NumberAssigned' = 1
        ),
    n => array(
        'id' => 22
        'NumberAssigned' = 1
        )
)

Я хочу сравнить все значения в столбце NumberAssigned в многомерном массиве с переменной, если все значенияв столбце совпадения с переменной затем $var = $var+1.Какое решение?

Ответы [ 2 ]

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

Нет необходимости в цикле.
Используйте array_column, чтобы получить все значения и удалить дубликаты с помощью array_unique.
Если переменная находится в массиве, а количество равно 1, то все значения соответствуют переменной.

$narr = array_unique(array_column($arr, "NumberAssigned"));

If(in_array($var, $narr) && count($narr) == 1){
    $var++;
}Else{
   // They are not all 1
}

Echo $var;

https://3v4l.org/k08NI

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

Одна опция использует array_column, чтобы превратить многомерный массив в простой массив.Используйте array_unique, чтобы получить уникальные значения.Если существует только 1 уникальное значение и значение совпадает с $var, все NumberAssigned совпадают с $var

$var = 1;
$arr = array(
    0 => array(
        'id' => 5,
        'NumberAssigned' => 1
        ),
    1 => array(
        'id' => 22,
        'NumberAssigned' => 1
        ),
    2 => array(
        'id' => 23,
        'NumberAssigned' => 1
        ),
);


$num = array_unique(array_column($arr,'NumberAssigned'));

if( count($num) === 1 && $num[0] === $var ) $var++;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...