powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP, работа с массивами
5 сообщений из 5, страница 1 из 1
PHP, работа с массивами
    #39306195
Pinkerton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую, форумчане.

Помогите с PHP массивами: есть исходный:
Код: php
1.
2.
3.
4.
5.
6.
7.
$arFiles array (size=6)
  0 => string '101858 - xxxxx.jpg' (length=64)
  1 => string '1233443zzzzzzzz8674zz.jpg' (length=62)
  2 => string '210 - sssss.jpg' (length=61)
  3 => string '686117 - qwe.png' (length=83)
  4 => string '713531 - asd.jpg' (length=125)
  5 => string 'qweefsds' (length=74)


регекспом определяем лидирующие цифры и набиваем ими другой массив:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
$arIDs=array();
foreach ($arFiles as $key=>$value) {
    $id = preg_match('/^\d{3,}/', $value, $matches[$key]); 
    if ($id) {
        $arIDs[]=$matches[$key][0];
    }
}
var_dump($arIDs);


Получаем
Код: php
1.
2.
3.
4.
5.
6.
$arIDs array (size=5)
  0 => string '101858' (length=6)
  1 => string '123443' (length=6)
  2 => string '210' (length=3)
  3 => string '686117' (length=6)
  4 => string '713531' (length=6)


Результирующий массив заполняется правильно, но мне кажется код выглядит как-то... из задницы что-ли. Наверняка можно причесать более правильно, кто подскажет?
ЗЫЖ Сильно не пинайте, в PHP пока не силен.
...
Рейтинг: 0 / 0
PHP, работа с массивами
    #39306209
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
PHP, работа с массивами
    #39306214
Pinkerton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle,

Ну, так-то оно да, красивше, но мне больше интересно преобразование данных из $matches в $arIDs. Как-то оно неказисто выглядит.
...
Рейтинг: 0 / 0
PHP, работа с массивами
    #39306224
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pinkerton,

Ну дык и предлагаю же обойтись без регулярок и $matches вовсе. Типа так:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<?php
$a = array(
  0 =>  '101858 - xxxxx.jpg',
  1 =>  '1233443zzzzzzzz8674zz.jpg',
  2 =>  '210 - sssss.jpg',
  3 =>  '686117 - qwe.png',
  4 =>  '713531 - asd.jpg',
  5 =>  'qweefsds',
);

$b = array();
foreach($a as $e) if(intval($e)) $b[] = intval($e);


Только тип данных в выходном массиве будет целое, а не строка.
...
Рейтинг: 0 / 0
PHP, работа с массивами
    #39306226
Pinkerton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle,
да, действительно. Спасибо.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP, работа с массивами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]