Я новичок в php и пытаюсь сортировать 2-й массив строк с определенным массивом порядка. Смотря на использование «usort» и «сравнение», но can not, кажется, обнимает их вокруг себя при использовании 2d массива и строк.PHP sort 2d строковый массив по определенному массиву порядка
Необходимо ввести массив в метод и вернуть отсортированный массив в том же формате. Поэтому для каждой записи в массиве она сортирует значение «файл» второго уровня, зависящее от порядка порядка массива. Любые предложения, как это сделать?
//actual array to be sorted by 'file'
$Array (
[0] => Array ([source] => img/table/icon/toxic.svg [file] => toxic)
[1] => Array ([source] => img/table/icon/health.svg [file] => health)
[2] => Array ([source] => img/table/icon/irritant.svg [file] => irritant ));
//order array with desired sort order
$order = array("irritant","corrosive","environment" ,"health","toxic","oxidizing","flammable","explosive","gas");
//Desired Output Result
$Array (
[0] => Array ([source] => img/table/icon/irritant.svg [file] => irritant)
[1] => Array ([source] => img/table/icon/health.svg [file] => health)
[2] => Array ([source] => img/table/icon/toxic.svg [file] => toxic));
См так раздражитель первой и токсичным является последним :)
Спасибо, что работает с удовольствием .... выглядит просто, но wudve взял меня на то, чтобы выяснить, используя arrayflip и ksort. – Orbitall
вам даже не понадобится 'array_flip' ... см. Мое последнее редактирование. Это можно сделать без этого. Я тоже рад помочь. Метод usort, предложенный xathien, также будет работать, но для новичков PHP он ничего не объясняет. – zgr024