Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> выбрать элементы из ассоциативного массива, по числовому индексу 
V
    Опции темы
Всемогущий
Дата 17.3.2007, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 25.6.2006
Где: Челябинск

Репутация: 5
Всего: 13



всё в названии темы,
решая эту проблемму сделал так:
Код

<?php

$stroki['Фамилия.Имя.Отчество']='Concat(`surname`,\' \',`name`,\' \',`patronymic`) as fio';
$stroki['Специальность']='`specnum`';
$stroki['№ группы']='`groupnum`';
$stroki['Состояние']='`condition`';
$stroki['форма обучения']='`tiplicens`';
$stroki['адрес']='`adress`';


function select($zadanie,$stroki) {
$kkey=array_flip (array_intersect ( array_flip (array_values($stroki)), $zadanie));
$vvalue= array_flip (array_intersect ( array_flip (array_keys($stroki)), $zadanie));
return array_combine ($vvalue,$kkey);

}
print_r(select(array(0,2),$stroki));
?>

может можно по изящнее....?


--------------------
Цитата(smartov @  16.1.2007,  13:26 Найти цитируемый пост)
Видел я PHP код, который пишут наСильники, никогда на php не писавшие  :D  То еще зрелище. Все пытаются сделать руками и через ж (как в С привыкли). Все пытаются память освобождать итд итп. 
PM MAIL ICQ   Вверх
vasac
Дата 17.3.2007, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 8
Всего: 36



Никогда не бойтесь в своем коде злоупотребить камментами
PM WWW   Вверх
Glip
Дата 17.3.2007, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 473
Регистрация: 30.12.2006

Репутация: 7
Всего: 18



Приведите пожалуйста необходимый результат для print_r

Правильный (хороший) код в комментариях не нуждается smile


--------------------
user posted image
PM MAIL   Вверх
SelenIT
Дата 17.3.2007, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



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

function select($zadanie,$stroki) {
   $res = array();
   $keys = array_keys($stroki);
   foreach ($zadanie as $n) $res[] = $stroki[$keys[$n]]; // по-хорошему, надо б еще проверить $n-й ключ на существование...
   return $res;
}

Всемогущий, такое удовлетворит ТЗ?



--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Serkys
Дата 18.3.2007, 02:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: 4
Всего: 22



Всемогущий, руби или питон? smile 
Сам с руби немного поковырялся, вернулся к РНР и заметил, как коренным образом изменился мой стиль программинга smile
PM MAIL   Вверх
Всемогущий
Дата 18.3.2007, 06:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 25.6.2006
Где: Челябинск

Репутация: 5
Всего: 13



Цитата(Glip @  18.3.2007,  01:18 Найти цитируемый пост)
Приведите пожалуйста необходимый результат для print_r

тот пример что я привёл работает,
общая задача ещё раз:
есть два массива,
Код

//далее массив из которого будем выбирать элементы
$stroki['Фамилия.Имя.Отчество']='Concat(`surname`,\' \',`name`,\' \',`patronymic`) as fio';
$stroki['Специальность']='`specnum`';
$stroki['№ группы']='`groupnum`';
$stroki['Состояние']='`condition`';
$stroki['форма обучения']='`tiplicens`';
$stroki['адрес']='`adress`';

$zadanie=array(0,2)//из верхнего массивы мне нужна нулевая и вторая строка(какие задам такие и выдаст)

print_r выдаёт 
 Array
(
    [Фамилия.Имя.Отчество] => Concat(`surname`,' ',`name`,' ',`patronymic`) as fio
    [№ группы] => `groupnum`
)
-----------------------------------------------------

Цитата(Serkys @  18.3.2007,  04:50 Найти цитируемый пост)
руби или питон? 

не знаю не того ни другого сам делаю маленький проект

------------------------------------------------------

Цитата(SelenIT @  18.3.2007,  01:59 Найти цитируемый пост)
Мне кажется, трехэтажное нагромождение флипов всяко хуже одного простенького цикла, тем более перебирать достаточно не большой массив, а лишь массив искомых позиций...

у вас не сохранились ключи,
Array
(
    [0] => Concat(`surname`,' ',`name`,' ',`patronymic`) as fio
    [1] => `groupnum`
)



--------------------
Цитата(smartov @  16.1.2007,  13:26 Найти цитируемый пост)
Видел я PHP код, который пишут наСильники, никогда на php не писавшие  :D  То еще зрелище. Все пытаются сделать руками и через ж (как в С привыкли). Все пытаются память освобождать итд итп. 
PM MAIL ICQ   Вверх
Glip
Дата 18.3.2007, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 473
Регистрация: 30.12.2006

Репутация: 7
Всего: 18



мне кажется вариант SelenIT более понятным. а чтобы сохранялись ключи, там надо доработать совсем немного

Код
$res[$keys[$n]] = $stroki[$keys[$n]]


может быть есть что-то и более красивое smile


--------------------
user posted image
PM MAIL   Вверх
Всемогущий
Дата 18.3.2007, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 25.6.2006
Где: Челябинск

Репутация: 5
Всего: 13



работает smile 
отдельное спасибо 
SelenIT, и
Glip, 


--------------------
Цитата(smartov @  16.1.2007,  13:26 Найти цитируемый пост)
Видел я PHP код, который пишут наСильники, никогда на php не писавшие  :D  То еще зрелище. Все пытаются сделать руками и через ж (как в С привыкли). Все пытаются память освобождать итд итп. 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0555 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.