如何每次都用键和值创建数组?

时间:2015-06-25 13:52:37

标签: php arrays

我想创建一个像$animal = array("a" => "horse","b" => "fish")这样的数组 在数组中创建一个元素(键和值)是约束条件,也就是说
在第一次创建键“a”和值“马”时,要$animal = array("a" => "horse")
在第二次创建键“b”和值“鱼”,以使$animal = array("a" => "horse","b" => "fish")

我可以两次创建array("horse","fish"),第一次将数组转换为array("horse")
第二次将数组转换为array("horse","fish")

<?php    
    $animal = array();    
    $x2 = "horse";    
    $x4 = "fish";    
    $animal[] = $x2;    
    $animal[] = $x4;    
    print_r($animal);    
?>    

如何以相同的方式创建数组(“a”=&gt;“horse”,“b”=&gt;“fish”)?

<?php    
    $animal = array();    
    $x1 = "a";    
    $x2 = "horse";    
    $x3 = "b";    
    $x4 = "fish";    
    array_keys($animal[]) = $x1;    
    array_values($animal[]) = $x2;    
    array_keys($animal[]) = $x3;    
    array_values($animal[]) = $x4;    
    print_r($animal);
?>

如何修复我的代码来完成这项工作?

3 个答案:

答案 0 :(得分:5)

当使用[]将元素推入数组时,您可以指定键,如果未指定键,则使用默认值,因此:

<?php    
    $animal = array();    
    $x1 = "a";    
    $x2 = "horse";    
    $x3 = "b";    
    $x4 = "fish";    
    $animal[$x1] = $x2;    
    $animal[$x3] = $x4;  
    print_r($animal);
?>

答案 1 :(得分:1)

$x1 = "a";    
$x2 = "horse";    
$x3 = "b";    
$x4 = "fish";    
print_r($animal = array_combine([$x1, $x3], [$x2, $x4]));

结果

Array (
    [a] => horse
    [b] => fish
)

答案 2 :(得分:0)

首先,使用range()函数创建一个包含所有字母的数组。然后,您可以使用字母作为键来创建项目。但请记住,您只能在数组中创建许多项目作为字母表中的字母。一旦那时,你就会失去钥匙。

<?php

/* Get all the alphabet letters. They will be your array keys */
$letters = range('a', 'z');

$animal = array();
$animal[$letters[count($animal)]] = "horse";
$animal[$letters[count($animal)]] = "fish";
$animal[$letters[count($animal)]] = "dog";

print_r($animal);

这会产生这个:

Array
(
    [a] => horse
    [b] => fish
    [c] => dog
)