Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> explode() для трех массивов, помогите разобраться с explode()
mav1  
 ۩     Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Местный житель
****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 182
Пользователь №: 23526
На форуме: 6 лет, 7 месяцев, 9 дней
Карма:




Доброго времени суток, достопочтенная публика.

Вот для того, чтобы строку вида
$a  = "1|2|3|4|5|6";
разбить на массив, нужно сделать всего лишь
$massive = explode("|", $a);


А у меня строка вида
$b  = "1|2!3¦4|5!6¦";


В это строке (число элементов в ней кратно трем и заранее неизвестно) три разных разделителя, мне надо в итоге из такой строки получить три массива/

Для вышеуказанного примера:
$massive1 будет содержать 1 и 4
$massive2 будет содержать 2 и 5
$massive3 будет содержать 3 и 6

Как это можно сделать с помощью explode(), ну и либо еще какой-нибудь щтуки?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
kaww  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1780
Пользователь №: 20757
На форуме: 7 лет, 1 месяц, 23 дня
Карма: 186




$a = "1|2!3¦4|5!6¦";
preg_match_all("/(\d+)\|(\d+)\!(\d+)\¦/", $a, $m);
var_dump($m[1], $m[2], $m[3]);
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15909
Пользователь №: 6543
На форуме: 8 лет, 5 месяцев, 22 дня
Карма: 300

Трезвый :
6 лет, 3 месяца, 1 день


Цитата (mav1 @ 15.02.2016 - 21:24)
ну и либо еще какой-нибудь щтуки?

Эта щтука называется "сериализация" по идее.


--------------------
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
mav1  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Местный житель
****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 182
Пользователь №: 23526
На форуме: 6 лет, 7 месяцев, 9 дней
Карма:




Цитата (kaww @ 16.02.2016 - 01:50)
$a = "1|2!3¦4|5!6¦";
preg_match_all("/(\d+)\|(\d+)\!(\d+)\¦/", $a, $m);
var_dump($m[1], $m[2], $m[3]);

Спасибо, помогло, осталась одна проблема - у меня 1,4,7 и т.д. элементы это не только цифры но и буквы, в том числе кириллица.

Вариант

preg_match_all("/([a-zA-ZА-Яа-Я0-9]+)\|(\d+)\!(\d+)\¦/"", $a, $m);
var_dump(
$m[1], $m[2], $m[3]);


ведет себя странно - все строки, где есть кириллица, обрезаются непонятным образом (прочел сейчас, что preg_match_all работает только с однобайтовыми кодировками). Латиница - нормально, кириллица - обрезается по всякому, видимо потому что в utf-8 кириллица неоднобайтовая.

Как можно сие починить? Пробовал добавить /u в регулярку - непрокатило
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5593
Пользователь №: 35718
На форуме: 4 года, 4 месяца, 6 дней
Карма: 170




Цитата (mav1 @ 16.02.2016 - 12:28)
Как можно сие починить?

просто не надо создавать себе проблемы, и потом не придётся их героически преодолевать...
Цитата (mav1 @ 16.02.2016 - 00:24)

А у меня строка вида

$b  = "1|2!3¦4|5!6¦";

откуда у вас такая строка на кой керн столько разделителей красивых и разных???


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
mav1  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Местный житель
****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 182
Пользователь №: 23526
На форуме: 6 лет, 7 месяцев, 9 дней
Карма:




Цитата (Valick @ 16.02.2016 - 09:46)
Цитата (mav1 @ 16.02.2016 - 12:28)
Как можно сие починить?

просто не надо создавать себе проблемы, и потом не придётся их героически преодолевать...
Цитата (mav1 @ 16.02.2016 - 00:24)

А у меня строка вида

$b  = "1|2!3¦4|5!6¦";

откуда у вас такая строка на кой керн столько разделителей красивых и разных???

Тут, к сожалению, я не могу вам ответить - я допиливаю уже то, что попало в мои руки. То есть вот оно есть в таком виде, и с этим надо что-то делать...
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5593
Пользователь №: 35718
На форуме: 4 года, 4 месяца, 6 дней
Карма: 170




Цитата (mav1 @ 16.02.2016 - 13:56)
Тут, к сожалению, я не могу вам ответить

Вы вообще отдаёте отчёт своим словам? Вас не волнуют ошибки допущенные предыдущим "программистом", и вы собираетесь еще тонны своих нагородить, вместо того что бы исправить незначительную часть в самом начале?


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
mav1  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Местный житель
****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 182
Пользователь №: 23526
На форуме: 6 лет, 7 месяцев, 9 дней
Карма:




Цитата (Valick @ 16.02.2016 - 11:02)
Цитата (mav1 @ 16.02.2016 - 13:56)
Тут, к сожалению, я не могу вам ответить

Вы вообще отдаёте отчёт своим словам? Вас не волнуют ошибки допущенные предыдущим "программистом", и вы собираетесь еще тонны своих нагородить, вместо того что бы исправить незначительную часть в самом начале?

К сожалению, все базы уже в этом виде. И будут тоже в этом виде поступать в мои руки..
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
waldicom  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 6235
Пользователь №: 5552
На форуме: 8 лет, 8 месяцев, 19 дней
Карма: 163




Цитата (Valick @ 16.02.2016 - 12:02)
Вас не волнуют ошибки допущенные предыдущим "программистом", и вы собираетесь еще тонны своих нагородить, вместо того что бы исправить незначительную часть в самом начале?

Э, не надо тарапицца, не надо тарапицца (с) товарищ Саахов
Он ща исправит "в самом начале", а потом вест проект упадет, потому что другие работают с данными в этом формате. Или еще хуже - упадет не весь проект, а только какая-то маленькая часть. И потом иписьсней.


--------------------
Свои мозги еще никто не отменял.
Телепатов нету.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
mav1  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Местный житель
****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 182
Пользователь №: 23526
На форуме: 6 лет, 7 месяцев, 9 дней
Карма:




Цитата (waldicom @ 16.02.2016 - 11:25)
потому что другие работают с данными в этом формате.

вот так оно и есть...
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5593
Пользователь №: 35718
На форуме: 4 года, 4 месяца, 6 дней
Карма: 170




waldicom, ну во первых, об этом стоило написать сразу после моего вопроса, а во вторых, если эти другие - 2 человека, то сильно сомневаюсь в остальном...

mav1, вы хотите сказать, что полтора миллиарда китайцев, записывают руками данные именно в этом формате? тогда да, я не прав, погорячился, сори... трудно будет каждому объяснить как надо (хотя предыдущему программисту это удалось)

В любом случае, меня никто не хочет тут слышать, а некоторые даже видеть (на форуме), поэтому разрешите откланяться...


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
mav1  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Местный житель
****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 182
Пользователь №: 23526
На форуме: 6 лет, 7 месяцев, 9 дней
Карма:




Цитата (Valick @ 16.02.2016 - 11:46)
mav1, вы хотите сказать, что полтора миллиарда китайцев, записывают руками данные именно в этом формате? тогда да, я не прав, погорячился, сори... трудно будет каждому объяснить как надо (хотя предыдущему программисту это удалось)

В любом случае, меня никто не хочет тут слышать, а некоторые даже видеть (на форуме), поэтому разрешите откланяться...

Ни в коем случае не держу на вас никакой обиды, вы предложили свое решение, высказали свое мнение - на то и форум. Я благодарен за любой совет! Формат базы менять не могу(
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
icedfox  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 395
Пользователь №: 41702
На форуме: 1 год, 7 месяцев, 12 дней
Карма: 13




preg_match_all("/([a-zA-ZА-Яа-Я0-9]+)\|(\d+)\!(\d+)\¦/ui", $a, $m);
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
casper - gg  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Пользователь
Сообщений: 216
Пользователь №: 42190
На форуме: 1 год, 3 месяца, 21 день
Карма: 10




Цитата (mav1 @ 16.02.2016 - 15:52)
на то и форум


мне просто из любопытства, Mav на форуме Вы более 5 лет, хотя и сообщений не много в профиле. Но все же не ясно отчего такие трудности возникают в вопросах начальных практически. Много ли такой практикой занимались, какие успехи сейчас с этим проектом. Ведь там вопрос - равносильно чашку чая выпить.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
FatCat  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чеширский кот
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 6004
Пользователь №: 1
На форуме: 11 лет, 1 месяц, 18 дней
Карма: 126

Не пью :
22 года, 6 месяцев, 19 дней


Не люблю регулярки. Посимвольный перебор будет работать не медленнее, и плевать на кодировки.
$b  = "1|2!3¦4|5!6¦";
$m1 = array();
$m2 = array();
$m3 = array();
$tmp = "";
for($i=0;$i<strlen($b);$i++)
{
if($b[$i] == '|')
{
$m1[] = $tmp;
$tmp = "";
}
elseif($b[$i] == '!')
{
$m2[] = $tmp;
$tmp = "";
}
elseif($b[$i] == '¦')
{
$m3[] = $tmp;
$tmp = "";
}
else $tmp .= $b[$i];
}


--------------------
Бесплатному сыру в дырки не заглядывают...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Ответ в темуСоздание новой темыСоздание опроса