Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Bogdan007
0 / 0 / 2
Регистрация: 27.05.2015
Сообщений: 11
#1

В оставшихся массивах, в поле coords удалить из строки скобки и пробел после запятой - PHP

03.07.2016, 16:02. Просмотров 219. Ответов 4
Метки нет (Все метки)

Здраствуйте ребят, помогите решить пожалуйста задачку на PHP.

Сделал --> Я Удалил подмассив с незаполненным полем "address", 513 индекс.

Тепер нужно:-->
--> В оставшихся массивах(512, 514) , в поле coords удалить из строки скобки и пробел после запятой.
Вот код програми, нужно дописать код програми...
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
<?php
error_reporting(0);
$a = Array(
    item => Array(
        512 => Array(
            coords => '(50.451605, 30.525586900000008)',
            map_zoom => 16,
            name => "Magazin 1",
            address => "Adres 1"
        ),
        514 => Array
        (
            coords => '(53.261605, 33.525586900000008)',
            map_zoom => 8,
            name => "Magazin 3",
            address => "Adres 3"
        ),
        513 => Array(
            coords => '(55.171605, 39.525586900000008)',
            map_zoom => 8,
            name => "Magazin 2",
            address => ""
        )
    ),
    item_default => 512
);
 
foreach($_=$a['item'] as $k => $v) {
    if ( !strlen(trim($v['address'])) ) {
        unset($a['item'][$k]);
    }
}
 
print_r($a);
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2016, 16:02
Я подобрал для вас темы с готовыми решениями и ответами на вопрос В оставшихся массивах, в поле coords удалить из строки скобки и пробел после запятой (PHP):

Удалить пробел в конце строки без trim
Интересует, как убрать пробелы на конце такой строки:...

Перенос строки после запятой
Помогите с следующей задачей. Есть список имейл адресов в формате .тхт в...

Строка содержит слова, разделенные запятой. После каждой запятой вставить пробел
1.1 В заданной строке слова разделены пробелами (кол-во пробелов...

Удалить из строки третье слово после первой запятой
Приветствую, коллеги!!! Помогите неродивому сис админу и в прошлом...

Удалить из строки третье слово после первой запятой
Удалить из строки третье слово после первой запятой. Нужно удалить только это...

Из строки удалить глухие согласные буквы, стоящие после запятой или пробела
Составить подпрограмму, которая из строки удаляет глухие согласные буквы,...

4
Max Dark
шКодер самоучка
1896 / 1696 / 837
Регистрация: 09.10.2013
Сообщений: 3,755
Записей в блоге: 6
Завершенные тесты: 2
03.07.2016, 16:30 #2
Как то так
PHP
1
2
3
4
5
6
7
foreach($a as &$v) {
    if (empty($v['coords'])) continue;
    $c = $v['coords'];
    // преобразуем к массиву в формате JSON
    $c{0} = '['; $c{strlen($c)-1} = ']';
    $v['coords'] = json_decode($c);
}
0
Пифагор
1185 / 988 / 515
Регистрация: 10.01.2015
Сообщений: 3,321
03.07.2016, 16:38 #3
Лучший ответ Сообщение было отмечено Bogdan007 как решение

Решение

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
error_reporting(0);
$a = Array(
item => Array(
512 => Array(
coords => '(50.451605, 30.525586900000008)',
map_zoom => 16,
name => "Magazin 1",
address => "Adres 1"
),
514 => Array
(
coords => '(53.261605, 33.525586900000008)',
map_zoom => 8,
name => "Magazin 3",
address => "Adres 3"
),
513 => Array(
coords => '(55.171605, 39.525586900000008)',
map_zoom => 8,
name => "Magazin 2",
address => ""
)
),
item_default => 512
);
 
foreach($_=$a['item'] as $k => $v) {
    if ( !strlen(trim($v['address'])) ) {
        unset($a['item'][$k]);
    }
    else {
        $a['item'][$k]['coords'] = preg_replace("/[()\s]/", "", $a['item'][$k]['coords']);
    }
}
 
print_r($a);
Добавлено через 2 минуты
http://sandbox.onlinephpfunctions.co...f5426c45f58e88
0
Bogdan007
0 / 0 / 2
Регистрация: 27.05.2015
Сообщений: 11
03.07.2016, 17:01  [ТС] #4
Спасибо, очень благодарен)) Можешь подсказать как из получившихся полей coords создать новый массив item_coords в формате:
[№ элемента] =>
[LAT] => широта
[LNG] => долгота
0
Пифагор
1185 / 988 / 515
Регистрация: 10.01.2015
Сообщений: 3,321
03.07.2016, 18:02 #5
Не совсем понятно, что за № элемента, а в целом вот:
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
error_reporting(0);
$a = Array(
item => Array(
512 => Array(
coords => '(50.451605, 30.525586900000008)',
map_zoom => 16,
name => "Magazin 1",
address => "Adres 1"
),
514 => Array
(
coords => '(53.261605, 33.525586900000008)',
map_zoom => 8,
name => "Magazin 3",
address => "Adres 3"
),
513 => Array(
coords => '(55.171605, 39.525586900000008)',
map_zoom => 8,
name => "Magazin 2",
address => ""
)
),
item_default => 512
);
$i = 0; 
foreach($_=$a['item'] as $k => $v) {
    if ( !strlen(trim($v['address'])) ) {
        unset($a['item'][$k]);
    }
    else {
        $a['item'][$k]['coords'] = preg_replace("/[()\s]/", "", $a['item'][$k]['coords']);
        $pr = $a['item'][$k]['coords'];
        $coords = explode(",", $pr);
        $item_coords[$i][] = $i;
        $item_coords[$i]['LAT'] = $coords[0];
        $item_coords[$i]['LNG'] = $coords[1];
$i++;
    }
}
 
print_r($item_coords);
Добавлено через 1 минуту
Код
Array
(
    [0] => Array
        (
            [0] => 0
            [LAT] => 50.451605
            [LNG] => 30.525586900000008
        )

    [1] => Array
        (
            [0] => 1
            [LAT] => 53.261605
            [LNG] => 33.525586900000008
        )

)
0
03.07.2016, 18:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2016, 18:02
Привет! Вот еще темы с решениями:

Убрать пробел в тексте после запятой
Вводим текст... Программа убирает пробелы после только после запятой. По...

Ошибка при компиляции: требует точку с запятой после скобки
Вот код: #include &lt;iostream&gt; // Для возможности использования cin / cout...

Ввод в поле TextBox :цифр,одной запятой и трех цифр после запятой
Добрый день. На форме размещен TextBox в который разрешен ввод :цифр ,запятая....

Удалить все строки после заданной где есть пустое поле
Здравствуйте! У меня есть функция, которая при нажатии на кнопку создает строку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru