[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: работа с массивами
abu
подскажите кто чем может :)
есть массив:
Array
(
[
0] => Array
(
[
user_id] => 4
[item_id] => 21
[photo] => photo.jpg
[z] => Array
(
[
0] => 16
)
[
price_s] => Array
(
[
0] => 0.00
)
)
[
1] => Array
(
[
user_id] => 4
[item_id] => 21
[photo] => photo.jpg
[z] => Array
(
[
0] => 28
)
[
price_s] => Array
(
[
0] => 15.00
)
)
[
2] => Array
(
[
user_id] => 4
[item_id] => 20
[photo] => photo.jpg
[z] => Array
(
[
0] => 28
)
[
price_s] => Array
(
[
0] => 0.00
)
)
)

и из не го нужно получить массив где , если значения [user_id] и [item_id] одинаковы то сгуруппировать их а [z] , [price_s] добавить к существуюшим значениям , т.е.
Array
(
[
0] => Array
(
[
user_id] => 4
[item_id] => 21
[photo] => photo.jpg
[z] => Array
(
[
0] => 16
[1]=> 28
)
[
price_s] => Array
(
[
0] => 0.00
[1] => 15.00
)
)
[
1] => Array
(
[
user_id] => 4
[item_id] => 20
[photo] => photo.jpg
[z] => Array
(
[
0] => 28
)
[
price_s] => Array
(
[
0] => 0.00
)
)
)




Спустя 8 минут (18.02.2011 - 09:53) Snus написал(а):
Если user_id уникальный, то лучше такую схему делать.
Array
(
[4] => Array
(
[item_id] => Array
(
[0] => 21
[1] => 20
)
[photo] => photo.jpg
[z] => Array
(
[0] => 16
[1]=> 28
)
[price_s] => Array
(
[0] => 0.00
[1] => 15.00
)
)
)

Спустя 9 минут, 2 секунды (18.02.2011 - 10:02) abu написал(а):
user_id уникальный но , Snus, но наверно твоя схема не подойдет т.к. у каждого item_id должна быть своя коллекция z и price_s smile.gif

Спустя 1 минута, 44 секунды (18.02.2011 - 10:04) Snus написал(а):
abu
Для чего ты используешь массивы?

Спустя 5 минут, 29 секунд (18.02.2011 - 10:10) Guest написал(а):
из них легче данные извлеч, есть какие то альтернативные методы хранения , к примеру выше приведенной структуры ? smile.gif

Спустя 2 минуты, 55 секунд (18.02.2011 - 10:12) Snus написал(а):
Guest
Ну если ты расскажешь, что за скрипт у тебя и покажешь структуру БД, то можно будет думать.

Спустя 7 минут, 56 секунд (18.02.2011 - 10:20) abu написал(а):
структура таб пять полей :

user_id item_id photo z price_s
4 21 photo 16 0
4 21 photo 28 5.00
4 20 photo1 28 0

вывести надо в таком виде
лот №21
заявка 16,28
лот №20
заявка 28
:)

Спустя 11 минут, 3 секунды (18.02.2011 - 10:31) Snus написал(а):
$query = "SELECT `user_id`, `item_id`, `photo`, `z`, `price_s` FROM `your_table`";
$result = mysql_query($query) or die(mysql_error());
while ( list($user_id,$item_id,$photo,$z,$price_s) = mysql_fetch_array($result) ){
$arrItems[$item_id][] = compact('user_id','photo','z','price_s');
}
mysql_free_result($result);

echo '<pre>';
print_r($arrItems);
echo '</pre>';

foreach($arrItems as $item_id => &$arr){
echo '<div>Лот № '.$item_id.'</div>';
foreach($arr as &$val){
...
}
}




Спустя 12 минут, 7 секунд (18.02.2011 - 10:44) abu написал(а):
спб, щас посмотрю

Спустя 45 минут, 13 секунд (18.02.2011 - 11:29) abu написал(а):
Snus , спб, помогло, как зарегистрируюсь с меня плюсик :) , не подскажеь еще зачем
foreach($arrItems as $item_id => &$arr){
зачем "&" перед массивлм ставишь?

Спустя 11 минут, 32 секунды (18.02.2011 - 11:40) Snus написал(а):
abu
Чтобы память не забивать. Выполняется чуть дольше (не заметно практически), зато экономия памяти.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.