Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Активные темы » Простенький вопрос по PHP

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Открыть новую тему     Написать ответ в эту тему

Sto50



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Спасибо большое !!!


Цитата:
они не идентичны - в 8 элементе есть перенос строки
поэтому перед применением array_unique нужно применить trim ко всем элементам.
$arr = array_unique(array_map('trim', $arr));

 
 
 
 
Добавлено:
Спасибо большое !!!

Всего записей: 81 | Зарегистр. 26-06-2005 | Отправлено: 01:18 12-11-2020
sem88

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Исходнки
 
Имеем два массива
Array ( [0] => Array ( [0] => 222@mail.ru [1] => 111@ya.ru [2] => 222@br.ru ) )  
 
Array ( [0] => Array ( [0] => МАША [1] => Валя [2] => Игорь ) )  
 
 
Вопрос
как записать информацию из этих двух архивов в mysql  в виде МАША 222@mail.ru,  Валя 111@ya.ru и т.д.

Всего записей: 89 | Зарегистр. 13-04-2007 | Отправлено: 18:56 11-01-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sem88

Цитата:
как записать информацию из этих двух архивов в mysql  в виде МАША 222@mail.ru,  Валя 111@ya.ru и т.

объединить сначала так, как хочется..
например  
$combined = array_map(function($a, $b) { return $a . ' ' . $b; }, $a1, $a2);
и тут у вас размерность одна лишняя.. массив в массиве, непонятно зачем.
а потом уже создать для конечного массива запрос в базу, как обычно.. либо один сразу, либо много одинаковых insert, либо транзакцией.
 
а можно и просто в цикле создать запись для запроса
 
$combined = array_map(function($a, $b) { return '"' . $a . ' ' . $b . '"'; }, $a1, $a2);
$sql= "INSERT INTO tablename (columnname) VALUES (" . join("), (", $combined) . ")";
 
там, где return, нужно добавить еще и экранирование данных.. через mysqli_real_escape_string или через метод объекта (если используется ООП).
$combined = array_map(function($a, $b) { return '"' . mysqli_real_escape_string($a . ' ' . $b) . '"'; }, $a1[0], $a2[0]);

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 22:09 11-01-2022 | Исправлено: Mavrikii, 00:50 12-01-2022
stokesqwerty

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопросы можете задавать в телеграм @***




Здесь не доска объявлений и вопросы задают только тут.

Всего записей: 1 | Зарегистр. 27-12-2021 | Отправлено: 14:54 21-01-2022
Sto50



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет. Нужна помощь пожалуйста.
Мне надо в массиве изменить значение.
С такого - /var/spool/asterisk/monitor/2023/01/03/out-123321123-201-20230103-100241-1672732961.1019.wav
На такое  - out-123321123-201-20230103-100241-1672732961.1019.wav
Заранее  спасибо  
P.S. -PHP

Всего записей: 81 | Зарегистр. 26-06-2005 | Отправлено: 12:04 03-01-2023 | Исправлено: Sto50, 12:05 03-01-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sto50

Цитата:
 в массиве

А где тут массив?
 

Цитата:
На такое

https://www.php.net/manual/ru/function.basename.php

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 12:08 03-01-2023
Sto50



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
       (
            [calldate] => 2023-01-03 00:10:36
            [clid] => "123123123" <123123123>
            [src] => 123123123
            [dst] => 1000
            [dcontext] => ext-queues
            [channel] => IAX2/asterisk-2143
            [dstchannel] =>  
            [lastapp] => Queue
            [lastdata] => 1000,t,,,,,,,,
            [duration] => 26
            [billsec] => 26
            [disposition] => ANSWERED
            [amaflags] => 3
            [accountcode] =>  
            [uniqueid] => 1672697436.965
            [userfield] =>  
            [recordingfile] => /var/spool/asterisk/monitor/2023/01/03/q-1000-123123123-20230103-001037-1672697436.965.wav
            [cnum] => 123123123
            [cnam] => 123123123
            [outbound_cnum] =>  
            [outbound_cnam] =>  
            [dst_cnam] =>  
            [did] => 123123123
        )

Всего записей: 81 | Зарегистр. 26-06-2005 | Отправлено: 12:11 03-01-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sto50
Функцию дал, используйте.

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 12:19 03-01-2023
Sto50



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Спасибо большое  


Всего записей: 81 | Зарегистр. 26-06-2005 | Отправлено: 12:20 03-01-2023
Sto50



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем. У меня вот какой вопрос.
Как я могу вывести массив на разных страницах .
Вот пример массива:
 
Array
(
    [0] => Array
        (
            [0] => test
            [1] => 111
            [2] => 222
            [3] => 333
        )
 
    [1] => Array
        (
            [0] => test1
            [1] => 111
            [2] => 222
            [3] => 333
        )
 
    [2] => Array
        (
            [0] => test2
            [1] => 111
            [2] => 222
            [3] => 333
        )
 
)

Всего записей: 81 | Зарегистр. 26-06-2005 | Отправлено: 11:23 22-05-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sto50
Что значит
Цитата:
вывести массив на разных страницах .


Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 14:09 22-05-2023
Sto50



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Тест 1 это меню и когда нажимаешь на пункт меню выводится свой массив

Всего записей: 81 | Зарегистр. 26-06-2005 | Отправлено: 14:49 22-05-2023
pacnik

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Такой вопрос, имеем массив  array("Volvo", "BMW", "Toyota", "Toyota").
 
Нужно реализовать поиск слова в массиве.  Например,  $a= "Toyota".  Если $a встречается  больше 2 раз, вывести true если же 1 раз, то false. Существует ли функция типа array_intersect или  array_unique ? Дайте хотя бы наводку.
 

Всего записей: 39 | Зарегистр. 12-02-2007 | Отправлено: 15:50 22-05-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pacnik
array_count_values
 
Sto50
Ну, передаете нужный вам идентификатор в ссылке
script.php?page=1
В скрипте берете его
$page = $_GET['page'] ?? 0;
Вариант записи через ?? для php8, иначе нужно проверять isset, что есть параметр в массиве и назначать что то по умолчанию.
 
Ну и аналогично для вывода массива
if (isset($arr[$page])) {
// вывести $arr[$page]
} else {
// вывести ошибку
}

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 16:10 22-05-2023
pacnik

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 Спасибо за наводку, но  уже была попытка применить эту  функцию, не получилось. По описанию, выборка идет именно по самому массиву данных и вывод найденных совпадений. Мне же нужно сделать поиск в массиве   по заранее заданному слова, например $a= "Toyota".

Всего записей: 39 | Зарегистр. 12-02-2007 | Отправлено: 17:03 22-05-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pacnik
Не понимаю в чем сложность. После применения функции,
echo isset($arr[$a]) && $arr[$a] > 2 ? 'true' : 'false';

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 17:11 22-05-2023
Sto50



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Спасибо большое

Всего записей: 81 | Зарегистр. 26-06-2005 | Отправлено: 18:16 22-05-2023 | Исправлено: Sto50, 18:16 22-05-2023
pacnik

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
$a= "Toyota";
$arr = array("Volvo", "BMW", "Toyota", "BMW", "Toyota");
 
array_count_values($arr);
    
echo isset($arr[$a]) && $arr[$a] > 2 ? 'true' : 'false';
 
Всегда выдает - false

Всего записей: 39 | Зарегистр. 12-02-2007 | Отправлено: 20:15 22-05-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pacnik
$arr = array_count_values($arr);

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 20:23 22-05-2023
pacnik

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
while (  $n  =  mysqli_fetch_assoc($result)  ) {
   $data[] =  [
       "id" => $n['id'],
       "email" => $n['email']        
   ];
    
}
 
$arr = array_count_values($data);    
 
 
Получаем ошибку Warning: array_count_values(): Can only count STRING and INTEGER values!  что якобы  массив содержит элемент, не являющийся строкой или целым числом.
 
Если же посмотреть вывод var_dump ($data); То вроде всё норм  
 
array(4) { [0]=> array(2) { ["id"]=> string(2) "15" ["email"]=> string(8) "as@pp.ru" } [1]=> array(2) { ["id"]=> string(2) "15" ["email"]=> string(10) "ff22@pp.ru" } [2]=> array(2) { ["id"]=> string(2) "15" ["email"]=> string(10) "jjaa@pp.ru" } [3]=> array(2) { ["id"]=> string(2) "15" ["email"]=> string(10) "jjaa@pp.ru" } }  
 
на что ругается?

Всего записей: 39 | Зарегистр. 12-02-2007 | Отправлено: 13:58 26-05-2023
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Компьютерный форум Ru.Board » Интернет » Web-программирование » Активные темы » Простенький вопрос по PHP


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru