Вот ситуация, я получаю данные из базы данных плагина WordPress. Мне нужно захватить эти «продукты» из базы данных, найти значение «имя», удалить из него некоторые символы и затем, наконец, отсортировать их по длине «имя». Вот что происходитPHP foreach получить значение таблицы и изменить
//The plug in queries the database
$products = $product->getModelsNames($where="", $orderBy='order by name', $limit=null);
//I added this to take that query and make changes to the 'name' field
foreach ($products as $p) {
//Characters I need removed
$characters = array("a", "b", "c", "d", ".", "-");
$p->name = str_replace($characters, "", $p->name);
//Re sort by name now without characters and save back to $products. not sure what to do here
}
//now start the loop for the products
<?php foreach($products as $p): ?>
Основной вопрос, у меня есть продукты с такими именами, как: 8.2-1, 8.2-2, 8.2-2-A, 8.2-10
и так далее, и я не могу заставить их сортировать в порядке. Я полагаю, что единственный способ - удалить все символы, чтобы иметь только цифры, а затем сортировать по длине, или я получаю свои продукты, перечисленные как 8.2-1, 8.2-10, 8.2-2, 8.2-2-A
или 8.2-1, 8.2-2, 8.2-10, 8.2-2-A
. Кроме того, мне нужно повторить имена во втором цикле, как они были до того, как я удалил символы. При реальной потере того, как это сделать. Считается достаточно простым, так как продукты часто идут по числу и характеру, но не могут их отсортировать правильно.
Это не дает мне ничего. У меня есть 'natsort ($ products);' по имени? – Packy
Ах, я не заметил, что $ products больше, чем просто массив имен. Я обновлю свой ответ ... – rjdown
Perfect !!! Я работал часами, пытаясь понять это. Благодаря! – Packy