Вывести повторяющиеся элементы массива

post

Новичок
Вывести повторяющиеся элементы массива

Как возможно вывести повторяющиеся элементы из массива с их ключами
$_POST['number'][$k] ?
 

HraKK

Мудак
Команда форума
Зачем? Задачу скажи.

-~{}~ 10.11.07 17:09:

Не мог удержатся :) Вот индусский код :)
не использовать!
PHP:
<?php
function check($value, $number, $array)
{
	unset($array[$number]);
	if(in_array($value,$array))echo $number.' - '.$value.'<BR>';

}
$array = array(
	'1'=>'qw',
	'2'=>'qxw',
	'3'=>'qsw',
	'4'=>'wqw',
	'x'=>'qw',	
);

array_walk($array,'check', $array);
?>
 

post

Новичок
Из текстового документа приходят данные. В таком виде

;number1; quantity1; sum1;
;number1; quantity7; sum7; (то есть по одному номеру могут прийти разные данные)
;number2; quantity2; sum2;
;number3; quantity3; sum3;
;number2; quantity2; sum2;
;number4; quantity4; sum4;

Они хранятся в массивах.
$_POST['number'][$k]
$_POST['quantity][$k]
$_POST['sum'][$k]

где $k, соответственно, строчка

мне необходимо вставить эти данные в другие документы.
Если совпадают number, то данные записываются в один документ.

И поэтому, мне нужно сравнить данные внутри массива $_POST['number'][$k] и вывести совпадающие..
 

HraKK

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

-~{}~ 10.11.07 17:18:

MySQL не пробовал использовать?
 

Pigmeich

Новичок
где $k, соответственно, строчка
Мне, эстету, видимо не понять.

может просто переписать отформатированные данные в ассоциативный массив, где ключом будет number? Все лишние затрутся. Ну можно isset() для польной оптимизации сделать.
 

post

Новичок
Pigmeich, тут наверное так не получится. Данные могут прийти в виде

;number2; quantity2; sum2;
;number2; quantity3; sum3;

тогда затрётся и не лишнее

-~{}~ 10.11.07 19:56:

HraKK, да я хочу записать разом все данные в новый файл и сразу удалить текстовой документ.
Чтобы записать данные в MySQL (структура которой уже сформирована до меня и её лучше не трогать, поскольку база очень громоздкая), мне нужно знать, какие из номеров совпадают.
Опять всё сводится к моему первому вопросу..
 

HraKK

Мудак
Команда форума
И так как я предпологал ты обманываешь.
Я тогда пас помогать. Используй мой индуский код.
 

SiMM

Новичок
Интересно, как то, что приходит из текстового документа пользователя, сохраняется в массиве $_POST?
 

post

Новичок
SiMM
$data=file("data1.txt") or die ("Невозможно открыть файл data1.txt");
$count = count($data);

for ($k=0;$k<(count($data));$k++)
{
$data[$k] = explode(";",$data[$k]);

$_POST['number'][$k] = trim($data[$k][1]);
$_POST['quantity'][$k] = trim($data[$k][2]);
$_POST['sum'][$k] = trim($data[$k][3]);

}
 

post

Новичок
SiMM
значения этих массивов передаются ещё в другие части программы, так более безопасно, как я понимаю
 

Фанат

oncle terrible
Команда форума
зачем передавать "в другие части программы" то, что и так лежит на сервере?
что имеется в виду под "другими частями"?

И - самое интересное - как именно ты понимаешь безопасность массива $_POST? Чем массив $_POST безопаснее массива $data?
 

post

Новичок
Автор оригинала: *****
зачем передавать "в другие части программы" то, что и так лежит на сервере?
что имеется в виду под "другими частями"?

И - самое интересное - как именно ты понимаешь безопасность массива $_POST? Чем массив $_POST безопаснее массива $data?
Передаётся методом POST в <hidden> из текстового документа в форму, из формы в другие части - по-разному..
Программа так написана, что везде проверяется, чтобы передача осуществлялась методом POST. Я её дописываю и не стал это менять, решил, что в интересах безопасности, наверное и тоже складываю в POST.

Массива $data он не безопаснее, просто нужно, чтоб эти данные лежали на сервере.

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

Фанат

oncle terrible
Команда форума
post
у тебя какой-то бред в голове.
текстовый файл лежит на сервере?
массив $data получается из текстового файла, который лежит на сервере?
если да, то
1) зачем передавать самому себе методом POST в <hidden> на сервер те данные, которые на сервере и так есть?

массив POST привязан к методу передачи. НО У ТЕБЯ-ТО НИКАКОЙ ПЕРЕДАЧИ НЕТ! У тебя чтение из файла.
нафига тебе пихать данные из массива $data в массив $_POST?
тебе надо в базу данных записать? вот и записывай.
 

post

Новичок
*****

Да, мне надо записать данные в базу, только сначала сформировать из этих данных файл.
Суть вопроса моего здесь была в том, что мне надо отсортировать данные в массиве, чтобы записать.. у меня не хватает для этого то ли ума то ли знаний то ли того и другого. Не пойму причём тут вопросы про POST пошли..

а мне надо всё-таки именно с POST.. уже попробовал убрать его, оставить просто $data - вообще данные не передаются. Зачем-то он видимо нужен (ну не пойму - зачем, но нужен). А должны передаваться они в файл, который формируется из пришедших данных.

может, это, конечно и не оправдание, что данные храню в POST, но так можно и с помощью var_dump($_POST) проверить, что куда передалось, а просто с массивами мудрить надо, чтоб поверить..
 

Pigmeich

Новичок
а мне надо всё-таки именно с POST.. уже попробовал убрать его, оставить просто $data - вообще данные не передаются.
:) А вот с этого момента надо сидеть и разбираться в коде.

но так можно и с помощью var_dump($_POST) проверить, что куда передалось, а просто с массивами мудрить надо, чтоб поверить..
var_dump($GLOBALS)?
 

SiMM

Новичок
> а просто с массивами мудрить надо, чтоб поверить..
Чего мудрить-то?

> var_dump($GLOBALS)?
Как бы хрен редьки не слаще не оказался.
 
Сверху