powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Работа с массивом
10 сообщений из 10, страница 1 из 1
Работа с массивом
    #38377400
gtkuler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, не могу придумать нормальное решение, есть многомерный массив, в котором несколько почти одинаковых массивов, у них разный только id или name вот дамп массива:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
array(4) {
  [0]=>
  array(5) {
    ["id"]=>
    string(1) "1"
    ["title"]=>
    string(16) "Интернет"
    ["text"]=>
    string(32) "Текст текст текст"
    ["date"]=>
    string(10) "1371186330"
    ["name"]=>
    string(7) "тег1"
  }
  [1]=>
  array(5) {
    ["id"]=>
    string(1) "1"
    ["title"]=>
    string(16) "Интернет"
    ["text"]=>
    string(32) "Текст текст текст"
    ["date"]=>
    string(10) "1371186330"
    ["name"]=>
    string(7) "тег2"
  }
  [2]=>
  array(5) {
    ["id"]=>
    string(1) "1"
    ["title"]=>
    string(16) "Интернет"
    ["text"]=>
    string(32) "Текст текст текст"
    ["date"]=>
    string(10) "1371186330"
    ["name"]=>
    string(7) "тег3"
  }
  [3]=>
  array(5) {
    ["id"]=>
    string(1) "2"
    ["title"]=>
    string(28) "Всё о интернете"
    ["text"]=>
    string(41) "Тут просто сама статья"
    ["date"]=>
    string(1) "0"
    ["name"]=>
    string(7) "тег4"
  }
}


Нужно превратить в нормальный вид, то есть где совпадает id, нужно как-то склеить все ["name"] и разделить через запятую Понимаю тут перебором, но нормального решение не могу пока найти
...
Рейтинг: 0 / 0
Работа с массивом
    #38377940
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gtkuler,

Ну если долго не думать...)

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
$result = array();
$curid = $arr[0]["id"];
$cnt = 0;

foreach ($arr as $k=>$v)
{
    
    if ($v["id"] == $curid && $k !=0)
    {
        $result[$cnt]["id"]=$v["id"];
        $result[$cnt]["title"]=$v["title"];
        $result[$cnt]["text"]=$v["text"];
        $result[$cnt]["date"]=$v["date"];
        $result[$cnt]["name"].=','.$v["name"];
    }
    else
    {
        $cnt++;
        $result[$cnt]["id"]=$v["id"];
        $result[$cnt]["title"]=$v["title"];
        $result[$cnt]["text"]=$v["text"];
        $result[$cnt]["date"]=$v["date"];
        $result[$cnt]["name"]=$v["name"];
        $curid=$v["id"];
    }    
}



Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Результат:
Array
(
    [1] => Array
        (
            [id] => 1
            [title] => Интернет
            [text] => Текст текст текст
            [date] => 1371186330
            [name] => тег1,тег2,тег3
        )

    [2] => Array
        (
            [id] => 2
            [title] => Всё о интернете
            [text] => Тут просто сама статья
            [date] => 0
            [name] => тег4
        )

)
...
Рейтинг: 0 / 0
Работа с массивом
    #38380033
gtkuler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnogu,

есть проблема, а если name пустой? то просто ,,,
делал проверку на !empty ничего не выходит, не подскажите ?
...
Рейтинг: 0 / 0
Работа с массивом
    #38380101
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gtkuler,
Код: php
1.
$v["date"] != ""


?
...
Рейтинг: 0 / 0
Работа с массивом
    #38380104
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
name т.е. )
...
Рейтинг: 0 / 0
Работа с массивом
    #38380122
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня и с !empty работает. Может там не пусто, а пробел какой, или еще что?
...
Рейтинг: 0 / 0
Работа с массивом
    #38381348
artas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gtkuler,

!empty(trim($name))
...
Рейтинг: 0 / 0
Работа с массивом
    #38381622
phpz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
artasgtkuler,

!empty(trim($name))
Пример не будет работать, т.к. empty() языковая конструкция.
...
Рейтинг: 0 / 0
Работа с массивом
    #38381654
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор5.5.0

empty() now supports expressions, rather than only variables.
...
Рейтинг: 0 / 0
Работа с массивом
    #38381726
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Развели с этой empty() фигню, приводя переданную переменную неявными преобразованиями к чему-то совсем простому, вроде boolean. Лишней она кажется. ИМХО конечно.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Работа с массивом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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