PHP数组';s、 如何访问键和值

PHP数组';s、 如何访问键和值,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,试图学习多维数组,但似乎总是难以访问它们。我仍然没有掌握如何使用索引、键和值访问它们 我怎样才能得到真正的“标题”这个词及其价值呢 这是我玩的一个 $shop = array( array( "Title" => "rose", "Price" => 1.25, "Number" => 15 ), array( "Ti

试图学习多维数组,但似乎总是难以访问它们。我仍然没有掌握如何使用索引、键和值访问它们

我怎样才能得到真正的“标题”这个词及其价值呢

这是我玩的一个

$shop = array( array( "Title" => "rose", 
                      "Price" => 1.25,
                      "Number" => 15 
                    ),
               array( "Title" => "daisy", 
                      "Price" => 0.75,
                      "Number" => 25,
                    ),
               array( "Title" => "orchid", 
                      "Price" => 1.15,
                      "Number" => 7 
                    )
             );

Which prints a structure such as this:

Array
(
    [0] => Array
        (
            [Title] => rose
            [Price] => 1.25
            [Number] => 15
        )

    [1] => Array
        (
            [Title] => daisy
            [Price] => 0.75
            [Number] => 25
        )

    [2] => Array
        (
            [Title] => orchid
            [Price] => 1.15
            [Number] => 7
        )

)

echo $shop[0][0][0]; //I Expect "rose" but I get "Undefined offset: 0"
echo $shop['Price']; //I expect 1.25 but I get "Undefined index: Price"

foreach($shop as $key=>$value)
{
echo $key; //I expect the key values "Title/Price/Number" instead I get Index numbers 0 1 2
echo $value; //I expect all values of keys e.g. "rose",1.25,15/"daisy",0.75,25/"orchid",1.15,7 Instead I get Array to string conversion error
}
我试图做的是从shop数组中获取所有的标题和值,并将其放入一个名为$x=array()的新数组中;然后从不同的数组中获取一个汽车钥匙/值,并将它们组合在一起

因此,新阵列的最终外观如下所示:

Array
(
    [0] => Array
        (
            [Title] => rose //from $shop array
            [Car] => Mercedez //from $car array
        )

    [1] => Array
        (
            [Title] => daisy //from $shop array
            [Car] => Ford //from $car array
        )

    [2] => Array
        (
            [Title] => orchid //from $shop array
            [Car] => Bentley //from $car array
        )

)

还有一种方法可以访问键“title”的实际名称而不是索引号吗?

您有一个数组,因此需要两个循环

foreach ($shop as $item) {
    foreach ($item as $key => $value) {
        echo $key;
        echo $value;
    }
}

您可以通过$shop[0]['Title'访问 0表示数组中的第一项,此项也是一个数组,其中包含字符串键,因此“title”为第二级

要对其进行迭代,请使用:

//Syntax array as key => value (value is in this case also an array)
foreach($shop as $iterator_level1 => $shop_set){
    //so you can access the 2. level by string key.
    echo $shop_set['title'];
}
希望这有帮助。

试试这个-

$newarray = array();
foreach($shop as $key=>$value) {
    $newarray[$key]['Title'] = $value['Title'];
    $newarray[$key]['Number'] = $value['Number'];
}
echo "<pre>";print_r($newarray);

$shop[0]['Price']==1.25
如果未设置键,则数组将以数字索引,否则您可以通过其键值访问值。或者一个。或者至少告诉我们你试过什么。我想在这种情况下你可以使用例如:$shop[0]['title']。由于您没有为外部数组提供字符串索引,因此它只能由一个数字进行索引。但是你的内心世界可以被字符串索引。我想这就是你要问的?mario你可能需要在代码上向下滚动一点。我已经评论了我试图访问它们的东西,我期望的和我得到的都是对的,所以$shop[0]['title']起了作用。但是如何在foreach循环中获取键“title”及其值呢?尝试了这个方法,效果很好。你是如何得到要传送的钥匙的?我可以理解您指定$value['Title']作为值。但是我没有看到您指定$shop[0]['Title']?另外,您将$shop更改为$value,因此只有值可用。然而,只要声明['Title',就不会引用$value或$shop作为Title?$shop[0]['Title']将只给出数组中第一个元素的值。如果您使用的是foreach,则不需要每次都指定key。根据您的要求,您希望“Title”作为newarray的键。因此,我通过声明一个数组“$newarray[]['Title']]”,将'Title'作为$newarray的键。尝试添加另一个字段$newarray[]['Number']=$value['Number'];它没有将其添加到现有的数组中,而是为itAh创建了一个新的索引号,因此它不会动态地从$shop获取标题,您已经明确地将该字段的名称命名为'title',对吗?是的,我明确地给出了它,但我们可以使用$key动态地给出它。好的,这似乎是有意义的。因为它是一个数组的数组。您必须首先循环第一组数组,然后在其中循环第二组数组,在这一点上我可以访问实际的键而不是索引位置?
Array
(
    [0] => Array
        (
            [Title] => rose
            [Number] => 15
        )

    [1] => Array
        (
            [Title] => daisy
            [Number] => 25
        )

    [2] => Array
        (
            [Title] => orchid
            [Number] => 7
        )

)