2011-09-26 129 views
1

基本问题,但我已经搜索,并不能完全得到这个钉 - 我怎么能从其他几个创建1变量?然后我想把它变成一个数组。从几个创建一个PHP变量

像这样的东西(很明显的语法错误!):

$name; 
$address; 
$post_code; 

$full_address = $name, $address, $post_code; 
$address[] = $full_address; 

我的PHP是非常基本的,所以还是容易对滥用!

+0

'$ address = array($ name,$ address,$ post_code); ' – rabudde

+1

您可以连接,就像您基本完成的那样,或者您可以将每个添加到数组中。你能否更详细地解释一下你最终想要看到什么? –

回答

1

你的意思是这个基本的或者你想如何做:

$separator = " "; 
$full_address = "{$name}{$separator}{$address}{$separator}{$postcode}"; 
$address[] = $full_address; 
+2

在这种情况下,为什么不只是'implode($ separator,array($ name,$ address,$ postcode))'? –

+0

@Olli它的工作原理不会弄乱它! – Rob

+0

好的,谢谢。 -Olli – Olli

8

你能做到几个方面:

// using sprintf 
$address[] = sprintf('%s, %s, %s', $name, $address, $post_code); 

// using "Traditional" concatenation 
$address[] = "$name, $address, $post_code"; 

// other version of concatenation 
$address[] = $name . ", " . $address . ", " . $post_code; 

或者,如果你希望他们作为一个数组:

​​3210
2

对于一个简单的数组:

$full_address = array($name, $address, $post_code); 

对于关联数组:

$full_address = array('name'=>$name, 'address'=>$address, 'zip'=>$post_code); 
0

你可以看看标准的对象:

$address = new stdClass; 
$address->postcode = '02115'; 
$address->name = "John Connor'; 

或自行创建一个Address类,它会在你的应用中非常有用。

class Address { 

    public function __construct ($name, $address) {...} 
    public function getFullAddress() {...} // or other useful functions 
} 
1

你所试图做的是叫做字符串连接,这在PHP与. - 运算符

$name = "Foo"; 
$address = "Barstreet 1"; 
$post_code = "12345 Foobar"; 

$full_address = $name . ", " . $address . ", " . $post_code 
1

你几乎几乎没有做。

$name = 'Your name'; 
$address = 'Your address'; 
$post_code = 'Your post code'; 

$full_address = "$name, $address, $post_code"; 
$address[] = $full_address; 
2

是否要连接字符串?您应该使用字符串连接运算符“”。 例如:

$s1 = "foo"; 
$s2 = "bar"; 
$s3 = "blabla"; 
$final_string = $s1 . " " . $s2 . $s3; 
echo $final_string; // output: "foo barblabla" 
1

,如果你想连接名称ADRESS和邮政编码,你可以这样做:

$address[] = $name.$address.$post_code; 
or 
$address[] = "$name $address $post_code"; 

,如果你想要的是每场都添加到ADRESS数组,你可以这样做如:

$address = array($name,$address,$post_code); 
or 
$address[] = $name; 
$address[] = $address; 
$address[] = $post_code; 
4

因为没有人别的提到这个问题,compact()

$name = 'Mike'; 
$address = '123 Main St'; 
$post_code = '55555'; 

$full_address = compact('name', 'address', 'post_code'); 
var_dump($full_address); 

/* Output: 
array(3) { 
    ["name"]=> 
    string(4) "Mike" 
    ["address"]=> 
    string(11) "123 Main St" 
    ["post_code"]=> 
    string(5) "55555" 
} 
*/ 
+1

+1,教会我一个新的诀窍:) – NightMICU

3

你只是想要追加几个字符串?

如果是正确的语法是这样的:

$name = 'Dave Random'; 
$address = 'Some place, some other place'; 
$post_code = 'AB123CD'; 

$merged = $name.$address.$post_code; 

...他们使用.(点)至concatentate。你可能会想插入换行符,逗号等它们之间:

$merged = $name.', '.$address.', '.$post_code; 

或者,你可以指定他们都在一个新的字符串是这样的:

$merged = "$name, $address, $post_code"; 

...注意使用双引号而不是单引号。这可能会对read this有帮助。

或者,您可以将它们保存为独立的值在array这样的:

$myArray = array(); 
$myArray['name'] = 'Dave Random'; 
$myArray['address'] = 'Some place, some other place'; 
$myArray['post_code'] = 'AB123CD'; 

...或这个:

$myArray = array(
    'name' => 'Dave Random', 
    'address' => 'Some place, some other place', 
    'post_code' => 'AB123CD' 
); 

...和你可以在阵列转换为字符串与implode()

$merged = implode(', ',$myArray);