Как сделать поиск в массиве "ключ => значение"

goodier
На сайте с 10.03.2009
Offline
36
789

Здравствуйте!

В файл записываю текст - 'id'=>110,'login'=>'username','date'=>'01.01.2012'

Как в ПХП обратиться к элементам массива.

Делаю так но получается, что массив содержит всего один элемент.

<?php

$data = file('info.txt');

for($i=0; $i < count($data); ++$i){

$stroka = $data[$i];

$arr = array($stroka);

$id = $arr['id'];

$login = $arr['login'];

echo "id:".$id." Login=".$login;

}

?>

Посоветуйте как сделать чтоб вытаскивать $login = $arr['login'];

dma84
На сайте с 21.04.2009
Offline
168
#1

Дак у вас ассоциативный массив же


foreach($data as $key => $value){}

Тьфу блин, вкурил)

вот это что?

$arr = array($stroka);

siv1987
На сайте с 02.04.2009
Offline
427
#2

что-то типа такого


foreach( $data as $v )
{
$str = "\$arr = array({$v});";
eval( $str );

print_r( $arr );
}
goodier
На сайте с 10.03.2009
Offline
36
#3

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

то есть если массив распечатать, то получится - [0]=>'id'=>110,'login'=>'username','date'=>'01.01.2012'

IL
На сайте с 20.04.2007
Offline
435
#4
goodier:
В файл записываю текст - 'id'=>110,'login'=>'username','date'=>'01.01.2012'

зачем? В смысле, почему в файл.. и почему именно такой текст? Если разбивать, то удобнее.. что-то вроде || или :: использовать.

т.е. в файле строчка

login::Pass::date

foreach (file($filename) as $line) {
list($login,$pass,$date) = explode('::',$line);
echo $login;//
}

А чтоб строчку как в примере обработать.. лучше или в файл массив целиком помещать:

 array('id'=>110,'login'=>'username','date'=>'01.01.2012');

и использовать подключая как PHP-файл..

$arr = include 'file.php';
echo $arr['login'];

либо формировать строку массива и вычислять с помощью eval

eval ("\$arr = array($string);"); print_r ($arr); 

p.s. это лишь возможности.. я бы рекомендовал сохранять "голые" данные.. В БД.. или в файле, но в формализованном формате (можно csv-функции использовать.. или ini)

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
S5
На сайте с 04.01.2010
Offline
77
#5

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий