Здравствуйте , помогите решить задачки (желательно с пояснениями). 1) $names = array( array('id' => 2, 'name' => 'Фрэнк'), array('id' => 3, 'name' => 'Чак'), array('id' => 7, 'name' => 'Алиса'), array('id' => 10, 'name' => 'Кэрол'), array('id' => 15, 'name' => 'Боб'), ... ); $sort = array(3, 15, 2, 7, 10, ...); Написать функцию sortNames($names, $sort=false). Функция должна возвращать отсортированный массив $names: - по id в порядке указанному в $sort; - по name в алфавитном порядке, когда $sort не указан. Примечание: Использовать функцию usort 2) $path = '/catalog/sneakers/new-balance/'; Написать функцию getSlugs($path), которая будет: - проверять при помощи регулярного выражения соответствие $path строке, состоящей из латинских строчных и заглавных букв, цифр и символов «-», «_», «/»; - возвращать массив типа array('catalog', 'sneakers', 'new-balance') или false в случае несоответствия. 3) Написать функцию для форматированного вывода цен priceFormat($price, $format, $separator=',', $decimals=0, $decimalsPoint='.') при которой: priceFormat(15500.15, '# руб.', ' ') = '15 500 руб.' priceFormat(1399.9, '$#', ',', 2) = '$1,399.90' Примечание: Использовать функцию number_format
У тебя решение задач прописано в примечаниях, ты в курсе? Загугли чтоль функции, которые там описаны. Задания простые как три апельсина. Соберись, позорно с таким не справиться.
Покажи, какие наработки есть, и где затык для начала. Потому как тут все по-русски написано, да еще и с примерами.
PHP: <?php //Написать функцию sortNames($names, $sort=false). //Функция должна возвращать отсортированный массив $names: //- по id в порядке указанному в $sort; //- по name в алфавитном порядке, когда $sort не указан. //Примечание: //Использовать функцию usort $names = array( array('id' => 2, 'name' => 'Фрэнк'), array('id' => 3, 'name' => 'Чак'), array('id' => 7, 'name' => 'Алиса'), array('id' => 10, 'name' => 'Кэрол'), array('id' => 15, 'name' => 'Боб'), ); //function sortNames($names, $sort=false){ //if ($sort == true){ // return $sort; //} //} $sort = array(3, 15, 2, 7, 10); function array_sort($names, $sort=false){ } usort($sort,"array_sort"); foreach ($names as $array){ foreach ($array as $id=> $name){ echo $id . $name ."<br>"; } } ?> я просто хз что писать именно в функции сортНеймс. У меня даже вывод походу кривой через форич в конце.
Нуу...все напутал, поспешил. 1) usort принимает сортируемый массив и коллбек. Ты в нее отдал массив с индексами. Но тебе же не его надо сортировать? 2) Почитай с расстановкой, как оно работает. Там суть в том, что тебе в функцию коллбек придут две ячейки массива. И ты, только тебе известным способом, должен решить, какой из них больше, какой меньше, либо что они равны. И вернуть -1, 1 или 0 в соответствующих случаях. Это просто чтобы usort поняла, по какому принципу ты бы рассортировал все. То есть тебе в коллбеке надо просто сказать, что есть что. А она уже сама отсортирует все. 3) Вывод по-быстрому можно организовать через var_dump($var);
PHP: $names = array( array('id' => 2, 'name' => 'Фрэнк'), array('id' => 3, 'name' => 'Чак'), array('id' => 7, 'name' => 'Алиса'), array('id' => 10, 'name' => 'Кэрол'), array('id' => 15, 'name' => 'Боб'), ); $sort = array(3, 15, 2, 7, 10); function array_sort($names, $sort=false){ if ($names == $sort) { return 0; } return ($names < $sort) ? -1 : 1; } usort($names,"array_sort"); var_dump ($names); ВОТ я нашел пример где -1 и 1 . я так понимаю надо как то соеденить айдишники вложенных массивов с массивом сорт, но хз как.
Для начала разберись, что у тебя в коде. К примеру: Код (Text): $names == $sort Ты что с чем сравниваешь конкретно? Ты используешь array_sort как коллбэк для usort. То есть usort будет вызывать эту функцию. И в параметры она передает не твои массивы, а два элемента, которые надо сравнить и сказать, какой из них по-твоему больше. Это раз. Тебе нужны отдельные сортировки для двух случаев. Это два. Выбор того, какая сортировка должна использоваться, в зависимости от наличия массива $sort в параметрах, должна производить третья функция. Гляди. Ты в нее передаешь массив для сортировки и массив индексов. Или без массива индексов. В зависимости от наличия массива индексов твоя функция запускает сортировку с таким-то коллбэком.