Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Двумерный массив
 
 автор: imchip   (14.12.2013 в 08:40)   письмо автору
 
 

Подскажите пожалуйста, как мне из этого массива получить человеко-понятные сообщения. Например где [day] чтобы в итоге было написано День: 1 и тд по русски. И еще вопрос, сейчас массива 2 а может быть тысячу, как это предусмотреть и вывести все что есть по русски?
Array
(
    [form] => Array
        (
            [0] => Array
                (
                    [day] => 1
                    [month] => Апрель
                    [year] => 2013
                    [heading] => 3
                    [subheading] => Джаз/Блюз
                    [company_name] => ООО Кирпичи
                    [address_1] => Строительная, 21
                    [address_2] => 
                    [address_3] => 
                    [address_4] => 
                    [address_5] => 
                    [address_6] => 
                    [phone_1] => До 20 символов
                    [phone_2] => До 20 символов
                    [phone_3] => До 20 символов
                    [phone_4] => До 20 символов
                    [phone_5] => До 20 символов
                    [phone_6] => До 20 символов
                    [social_1] => 
                    [social_2] => 
                    [social_3] => 
                    [social_4] => 
                    [social_5] => 
                    [social_6] => 
                    [email] => stroitorg@mail.ru
                    [surname] => Антонов
                    [name] => Олег
                    [patronymic] => Васильевич
                    [text] => Текст объявления
                )

            [1] => Array
                (
                    [day] => 1
                    [month] => Ноябрь
                    [year] => 2014
                    [heading] => 19
                    [subheading] => Агентства
                    [company_name] => ИП Карамелюк
                    [address_1] => Ул. набережная 42
                    [address_2] => 
                    [address_3] => 
                    [address_4] => 
                    [address_5] => 
                    [address_6] => 
                    [phone_1] => 
                    [phone_2] => 
                    [phone_3] => 
                    [phone_4] => 
                    [phone_5] => 
                    [phone_6] => 
                    [social_1] => 
                    [social_2] => 
                    [social_3] => 
                    [social_4] => 
                    [social_5] => 
                    [social_6] => 
                    [email] => karameluk@bk.ru
                    [surname] => Карамелюк
                    [name] => Виктор
                    [patronymic] => Антонович
                    [text] => Текст объявления
                )

        )

)

  Ответить  
 
 автор: confirm   (14.12.2013 в 10:57)   письмо автору
 
   для: imchip   (14.12.2013 в 08:40)
 

Это один массив, а не два, имеет два вложенных. А что в этом массиве не по русски? Вы имеете ввиду выводить элементы массива так, чтобы выводились и его ключи и значения, но вместо реальных имен ключей их "заменители" на русском?

  Ответить  
 
 автор: imchip   (14.12.2013 в 11:40)   письмо автору
 
   для: confirm   (14.12.2013 в 10:57)
 

да чтобы были ключи и как нужно составить правильно цикл чтобы ничего не пропустить на случай если будет массивов больше чем 2?

  Ответить  
 
 автор: confirm   (14.12.2013 в 12:31)   письмо автору
 
   для: imchip   (14.12.2013 в 11:40)
 

Сколько раз повторять - у вас один массив. Описывайте массив названий этих ключей:

<?
$keys 
= array(
    
'day' => 'День',
    
'month' => 'Месяц',
    
'year' => 'Год',
    
'heading' => 'Понятия не имею что это',
    
'subheading' => 'Аналогично',
    
'company_name' => 'Кирпичи',
    
'address_1' => 'Адрес 1',
    
'address_2' => 'Адрес 2',
    
'address_3' => 'Адрес 3'
    
'address_4' => 'Адрес 4'
    
'address_5' => 'Адрес 5'
    
'address_6' => 'Адрес 6'
    
'phone_1' => 'Телефон 1',
    
'phone_2' => 'Телефон 2',
    
'phone_3' => 'Телефон 3',
    
'phone_4' => 'Телефон 4',
    
'phone_5' => 'Телефон 5',
    
'phone_6' => 'Телефон 6',
    
'social_1' =>  '???',
    
'social_2' =>  '???'
    
'social_3' =>  '???'
    
'social_4' =>  '???'
    
'social_5' =>  '???'
    
'social_6' =>  '???'
    
'email' => 'Мыло',
    
'surname' => 'Фамилие',
    
'name' => 'Имя',
    
'patronymic' => 'Отчество',
    
'text' => 'Объявление' 
);

foreach(
$array['form'] as $m) {
    
//вывод, куда-то и в чем-то, вопрос в чем...
    
foreach($m as $k=>$v) echo $keys[$k].' '.$v.'<br>';       
}

  Ответить  
 
 автор: imchip   (14.12.2013 в 13:33)   письмо автору
 
   для: confirm   (14.12.2013 в 12:31)
 

спасибо большое. а как сделать проверку допустим если значение поля address_1 равно ничего не содержит то чтобы строка такая вобще не выводилась и игнорировалась в выводе?

  Ответить  
 
 автор: confirm   (14.12.2013 в 13:36)   письмо автору
 
   для: imchip   (14.12.2013 в 13:33)
 

В этом цикле и проверяйте - соответствует условию, значит вывод, нет, значит нет.

  Ответить  
 
 автор: imchip   (15.12.2013 в 18:04)   письмо автору
 
   для: confirm   (14.12.2013 в 13:36)
 

Прошу прощения, у меня появляется ошибка не могу понять в чем дело

Array
(
    [form] => Array
        (
            [0] => Array
                (
                    [day] => Array
                        (
                            [0] => 15
                        )

                    [month] => Array
                        (
                            [0] => Март
                        )

                    [year] => Array
                        (
                            [0] => 2015
                        )

                    [heading] => 3
                    [subheading] => Фолк/Этно
                    [company_name] => значение
                    [address_1] => значение
                    [address_2] => 
                    [address_3] => 
                    [address_4] => 
                    [address_5] => 
                    [address_6] => 
                    [phone_1] => До 20 символов
                    [phone_2] => До 20 символов
                    [phone_3] => До 20 символов
                    [phone_4] => До 20 символов
                    [phone_5] => До 20 символов
                    [phone_6] => До 20 символов
                    [social_1] => 
                    [social_2] => 
                    [social_3] => 
                    [social_4] => 
                    [social_5] => 
                    [social_6] => 
                    [email] => значение
                    [surname] => значение
                    [name] => значение
                    [patronymic] => значение
                    [text] => значение
                )

            [1] => Array
                (
                    [day] => Array
                        (
                            [0] => 1
                        )

                    [month] => Array
                        (
                            [0] => Ноябрь
                        )

                    [year] => Array
                        (
                            [0] => 2013
                        )

                    [heading] => 16
                    [subheading] => Няни
                    [company_name] => значение
                    [address_1] => значение
                    [address_2] => 
                    [address_3] => 
                    [address_4] => 
                    [address_5] => 
                    [address_6] => 
                    [phone_1] => 
                    [phone_2] => 
                    [phone_3] => 
                    [phone_4] => 
                    [phone_5] => 
                    [phone_6] => 
                    [social_1] => 
                    [social_2] => 
                    [social_3] => 
                    [social_4] => 
                    [social_5] => 
                    [social_6] => 
                    [email] => значение
                    [surname] => значение
                    [name] => значение
                    [patronymic] => значение
                    [text] => значение
                )

        )

)


Ошибка заключается в том что поля дата выхода месяц и год выводят значения arrow:
Дата выхода: Array
Месяц: Array
Год: Array

  Ответить  
 
 автор: confirm   (15.12.2013 в 18:09)   письмо автору
 
   для: imchip   (15.12.2013 в 18:04)
 

Вы понимаете то, что я вам писал ранее или нет?
Я вас спросил - "вам нужно при выводе массива вместо ключей выводить из русские значения?", вы ответили да.
А что вы такое творите у себя, что эти значения оказались в исходном массиве, я понятия не имею.

Чего вам надо на самом деле?

  Ответить  
 
 автор: imchip   (15.12.2013 в 18:21)   письмо автору
 
   для: confirm   (15.12.2013 в 18:09)
 

Да за ключи большое спасибо они работают. На данный момент мне нужно получить значения полей day, month и year. У меня вместо значения пишет "arrow"
Array 

    [form] => Array 
        ( 
            [0] => Array 
                ( 
                    [day] => Array 
                        ( 
                            [0] => 15 
                        ) 

                    [month] => Array 
                        ( 
                            [0] => Март 
                        ) 

                    [year] => Array 
                        ( 
                            [0] => 2015 
                        ) 

  Ответить  
 
 автор: confirm   (15.12.2013 в 18:31)   письмо автору
 
   для: imchip   (15.12.2013 в 18:21)
 

Вы не понимаете, что вас спрашивают - каким образом русские названия попали в исходный массив?
Вывод - это вывод браузер, и для того, чтобы вывести один раз вместо month Март, втыкать Март в исходный массив нет необходимости.
Это вы понимаете?

  Ответить  
 
 автор: imchip   (15.12.2013 в 18:32)   письмо автору
 
   для: confirm   (15.12.2013 в 18:31)
 

Это результат работы функции printf('<pre>%s</pre>', print_r($_POST, true));

  Ответить  
 
 автор: confirm   (15.12.2013 в 18:37)   письмо автору
 
   для: imchip   (15.12.2013 в 18:32)
 

Выбросите в помойку, и эту функцию, и этот результат.
Что вам надо конкретно вы объяснить можете?

  Ответить  
 
 автор: imchip   (15.12.2013 в 18:42)   письмо автору
 
   для: confirm   (15.12.2013 в 18:37)
 

Я хочу чтобы ваш предыдущий код с циклом - выводил значения полей, а не слово arrow. Результат работы скрипта с немного измененным массивом (код который разместил сегодня):
Дата выхода: Array
Месяц: Array
Год: Array

  Ответить  
 
 автор: imchip   (15.12.2013 в 18:45)   письмо автору
 
   для: imchip   (15.12.2013 в 18:42)
 

Дата выхода: Array
Месяц: Array
Год: Array

printf('<pre>%s</pre>', print_r($_POST, true));
#var_dump($_POST);


//Ключи
    $keys = array( 
    'day' => 'Дата выхода:', 
    'month' => 'Месяц:', 
    'year' => 'Год:', 
    'heading' => 'Рубрика:', 
    'subheading' => 'Подрубрика:', 
    'company_name' => 'Название компании:', 
    'address_1' => 'Адрес 1:', 
    'address_2' => 'Адрес 2:', 
    'address_3' => 'Адрес 3:',  
    'address_4' => 'Адрес 4:',  
    'address_5' => 'Адрес 5:',  
    'address_6' => 'Адрес 6:',  
    'phone_1' => 'Телефон 1:', 
    'phone_2' => 'Телефон 2:', 
    'phone_3' => 'Телефон 3:', 
    'phone_4' => 'Телефон 4:', 
    'phone_5' => 'Телефон 5:', 
    'phone_6' => 'Телефон 6:', 
    'social_1' =>  'Социальная сеть 1:', 
    'social_2' =>  'Социальная сеть 2:',  
    'social_3' =>  'Социальная сеть 3:',  
    'social_4' =>  'Социальная сеть 4:',  
    'social_5' =>  'Социальная сеть 5:',  
    'social_6' =>  'Социальная сеть 6:',  
    'email' => 'Электронная почта:', 
    'surname' => 'Фамилия:', 
    'name' => 'Имя:', 
    'patronymic' => 'Отчество:', 
    'text' => 'Объявление:'  
); 

//Генератор номера заказа
$numorder = mt_rand(1, 9999999999);

//Считаем кол-во рубрикаторов
$count = count($form);

echo "<b>Номер заказа:</b>&nbsp;".$numorder."<br>";
echo "<b>Кол-во рубрикаторов:</b>&nbsp;".$count."<br>";
echo "<b>Сумма заказа:</b>&nbsp;<br><br>";
foreach($_POST['form'] as $m) {  
    foreach($m as $k=>$v) echo $keys[$k].' '.$v.'<br>';        
    echo '<br>---------------------------------------<br><br>';


А результат работы функции которую я выкинул в помойку:
Array
(
    [form] => Array
        (
            [0] => Array
                (
                    [day] => Array
                        (
                            [0] => 1
                            [1] => 1
                        )

                    [month] => Array
                        (
                            [0] => Март
                            [1] => Март
                        )

                    [year] => Array
                        (
                            [0] => 2013
                            [1] => 2015
                        )

                    [heading] => 5
                    [subheading] => Европейская кухня
                    [company_name] => wewe
                    [address_1] => wewe
                    [address_2] => 
                    [address_3] => 
                    [address_4] => 
                    [address_5] => 
                    [address_6] => 
                    [phone_1] => До 20 символов
                    [phone_2] => До 20 символов
                    [phone_3] => До 20 символов
                    [phone_4] => До 20 символов
                    [phone_5] => До 20 символов
                    [phone_6] => До 20 символов
                    [social_1] => 
                    [social_2] => 
                    [social_3] => 
                    [social_4] => 
                    [social_5] => 
                    [social_6] => 
                    [email] => wew
                    [surname] => wew
                    [name] => wewe
                    [patronymic] => wew
                    [text] => wewefwef
                )

            [1] => Array
                (
                    [day] => Array
                        (
                            [0] => 15
                            [1] => 15
                        )

                    [month] => Array
                        (
                            [0] => Январь
                            [1] => Апрель
                        )

                    [year] => Array
                        (
                            [0] => 2014
                            [1] => 2014
                        )

                    [heading] => 3
                    [subheading] => Альтернатива
                    [company_name] => wewe
                    [address_1] => wewewe
                    [address_2] => 
                    [address_3] => 
                    [address_4] => 
                    [address_5] => 
                    [address_6] => 
                    [phone_1] => 
                    [phone_2] => 
                    [phone_3] => 
                    [phone_4] => 
                    [phone_5] => 
                    [phone_6] => 
                    [social_1] => 
                    [social_2] => 
                    [social_3] => 
                    [social_4] => 
                    [social_5] => 
                    [social_6] => 
                    [email] => wew
                    [surname] => wew
                    [name] => wewe
                    [patronymic] => wew
                    [text] => wewe
                )

        )

)

  Ответить  
 
 автор: confirm   (15.12.2013 в 19:10)   письмо автору
 
   для: imchip   (15.12.2013 в 18:45)
 

<?
$keys 
= array( 
    
'day' => 'Дата выхода'
    
'month' => 'Месяц'
    
'year' => 'Год'
    
'heading' => 'Рубрика'
    
'subheading' => 'Подрубрика'
    
'company_name' => 'Название компании'
    
'address_1' => 'Адрес 1'
    
'address_2' => 'Адрес 2'
    
'address_3' => 'Адрес 3',  
    
'address_4' => 'Адрес 4',  
    
'address_5' => 'Адрес 5',  
    
'address_6' => 'Адрес 6',  
    
'phone_1' => 'Телефон 1'
    
'phone_2' => 'Телефон 2'
    
'phone_3' => 'Телефон 3'
    
'phone_4' => 'Телефон 4'
    
'phone_5' => 'Телефон 5'
    
'phone_6' => 'Телефон 6'
    
'social_1' =>  'Социальная сеть 1'
    
'social_2' =>  'Социальная сеть 2',  
    
'social_3' =>  'Социальная сеть 3',  
    
'social_4' =>  'Социальная сеть 4',  
    
'social_5' =>  'Социальная сеть 5',  
    
'social_6' =>  'Социальная сеть 6',  
    
'email' => 'Электронная почта'
    
'surname' => 'Фамилия'
    
'name' => 'Имя'
    
'patronymic' => 'Отчество'
    
'text' => 'Объявление'  
);

$_POST['form'] = array(
    array(
'day' =>  15,
          
'month' => 'Март',
          
'year' => 2015,
          
'heading' => 3,
          
'subheading' => 'Фолк/Этно',
          
'company_name' => 'значение',
          
'address_1' => 'значение',
          
'address_2' => '',
          
'address_3' => ''
          
'address_4' => '',
          
'address_5' => '',
          
'address_6' => '',
          
'phone_1' => 'До 20 символов',
          
'phone_2' => 'До 20 символов',
          
'phone_3' => 'До 20 символов',
          
'phone_4' => 'До 20 символов',
          
'phone_5' => 'До 20 символов',
          
'phone_6' => 'До 20 символов',
          
'social_1' => '',
          
'social_2' => '',
          
'social_3' => '',
          
'social_4' => '',
          
'social_5' => '',
          
'social_6' => '',
          
'email' => 'значение',
          
'surname' => 'значение',
          
'name' => 'значение',
          
'patronymic' => 'значение',
          
'text' => 'значение')  
);

echo 
'<pre>';
print_r($_POST['form']);
echo 
'</pre>';

foreach(
$_POST['form'] as $m) {  
    foreach(
$m as $k=>$v) if($v trim($v)) echo $keys[$k].': '.$v.'<br>';        
    echo 
'<br>---------------------------------------<br><br>';
}


И как вам хочется так и выводит, а вот это

[day] => Array
                        (
                            [0] => 1
                            [1] => 1
                        )

                    [month] => Array
                        (
                            [0] => Март
                            [1] => Март
                        )

                    [year] => Array
                        (
                            [0] => 2013
                            [1] => 2015
                        ) 


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

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования