如何在php上获取字符串数组的索引?

时间:2011-06-23 13:53:10

标签: php arrays string indexing numbers

假设我有一个多维字符串数组:

.food = array(
            'vegetable' => array(
                               'carrot' => 'blablue', 
                               'potato' => 'bluebla', 
                               'cauliflower' => 'blabla'
                           ), 
            'Fruit' => array(
                               'apple' => 'chicken65', 
                               'orange' => 'salsafood', 
                               'pear' => 'lokkulakka'
            )
);

是否可以使用索引作为数字来访问数组,而不是使用键的名称? 因此,为了访问chicken65,我将输入echo $ food [1] [0];我不想使用数字作为键,因为它是一个大数组,如果我使用字符串作为键,它更加用户友好,它将让我在高级别上进行for循环。

6 个答案:

答案 0 :(得分:6)

你可以做foreach循环来实现与典型的for循环相同的东西。

foreach ($foods as $key => $value) {
    //For the first iteration, $key will equal 'vegetable' and $value will be the array
}

答案 1 :(得分:4)

$food[1][0] != $food[1]['apple'],因此在这种情况下您无法使用数字键。

答案 2 :(得分:1)

尝试

$new_array = array_values($food);

但是,变量不能以.开头。它应该以$

开头

答案 3 :(得分:0)

您可以在阵列上使用array_keys()。生成的数组可以通过for循环遍历,并为您提供关联键。

我将向您展示第一个维度:

$aTest = array('lol' => 'lolval', 'rofl' => 'roflval');
$aKeys = array_keys($aTest);
$iCnt = count($aKeys);

for($i = 0; $i < $iCnt; ++$i)
{
  var_dump($aTest[$aKeys[$i]]);
}

您需要针对两个维度执行此操作,但我不建议这样做。它实际上比大多数其他解决方案更加突兀和缓慢。

答案 4 :(得分:0)

你可能想尝试函数array_values但是因为你正在处理multidemsional数组,这里是php程序员发布的解决方案

http://www.php.net/manual/en/function.array-values.php#103905

但使用foreach而不是for。会更容易。

答案 5 :(得分:0)

我认为这条路线没有本土的东西。

看起来你似乎想要拉伸阵列使用了一下。

你应该在这个上去OOP。

创建一个FoodFamilly对象和一个Food对象,您可以在必要时存储数组,并且您将能够编写一个友好的用户友好代码并在需要时添加索引。

OOP几乎总是答案:)