Присвоение значения каждому элементу массива PHP - PullRequest
3 голосов
/ 06 мая 2011

Скажем, у вас есть такой массив ...

username, password, email

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

username=someRandomValueAssigned&password=someRandomValueAssigned&email=someRandomValueAssigned

как мне это сделать?Спасибо.

Ответы [ 4 ]

3 голосов
/ 06 мая 2011
$keys = array('username', 'password', 'email');

$values = array('someusername', 'somepassword', 'someemail');

$data = array_combine($keys, $values);

array_combine вернет ассоциативный массив, например,

$data = array( 
          'username' => 'someusername',
          'password' => 'somepassword',
          'email' => 'someemail'
        );

, тогда желаемый результат может быть достигнут с помощью простого цикла foreach

$str = '';

foreach($data as $k=>$v) {
   $str .= $k > 0 ? '&' : '';
   $str .= $k . '=' . $v ;
}

echo $str;

Кроме того, я подозреваю, что вы пытаетесь создать URL, поэтому вы можете проверить php http_build_query function

1 голос
/ 06 мая 2011

Похоже, вы строите строку запроса, я думаю, вы хотите использовать http_build_query():

$data = array(
    'username'  =>  'someRandomValueAssigned',
    'password'  =>  'someRandomValueAssigned',
    'email'     =>  'someRandomValueAssigned',
);

$query_string = http_build_query($data);

Это должно дать вам результат, который вы ищете.

http_build_query - Генерация строки запроса в кодировке URL

http://php.net/manual/function.http-build-query.php

1 голос
/ 06 мая 2011
$array_value=array();
$array_value['username']=somevalue;
$array_value['password']=somevalue;
$array_value['email']=somevalue;
$array_str=array();
foreach($array_value as $key=>$value){
   array_push($array_str,$key."=".$array_value[$value]);
}
$array_str=join("&",$array_str);
echo $array_str;
0 голосов
/ 06 мая 2011
$randomValue = array('username' => 'someValue' ); // same for other
foreach($array as &$value){
  $value = $value.'='.$randomValue[$value];
}

echo implode('&', $array);
...