Если у вас есть этот массив PHP:
$args = array(
'a' => array(
'zebra' => 1,
),
'b' => array(
'zebra' => 0,
),
'c' => array(
'zebra' => 0,
),
'd' => array(
'zebra' => 0,
),
'e' => array(
'zebra' => 1,
),
);
Есть ли способ алгоритмически изменить порядок этого массива по значению ключа "зебра", но вместо того, чтобы быть "возрастающим" (0 , 0,0,1,1), они будут чередоваться (0,1,0,1,0).
Так что, используя приведенный выше пример, желаемый готовый массив будет выглядеть так:
$ordered_args = array(
'b' => array(
'zebra' => 0,
),
'a' => array(
'zebra' => 1,
),
'c' => array(
'zebra' => 0,
),
'e' => array(
'zebra' => 1,
),
'd' => array(
'zebra' => 0,
),
);
Любые дополнительные дубликаты должны быть добавлены в конец, поэтому в решении должны быть предусмотрены другие массивы, например, со значениями зебры, такими как (1,1,1,1,0,0), что приведет к (0 , 1,0,1,1,1)
Я просто не могу понять это!
Редактировать: я пытался сделать это с помощью usort, через это похоже, но другой, вопрос , и ответ был отрицательный, поэтому я ищу программное решение c (без usort).