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

如何在php上获取字符串数组的索引?,php,arrays,string,indexing,numbers,Php,Arrays,String,Indexing,Numbers,假设我有一个多维字符串数组: .food = array( 'vegetable' => array( 'carrot' => 'blablue', 'potato' => 'bluebla', 'cauliflower' => 'blabla'

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

.food = array(
            'vegetable' => array(
                               'carrot' => 'blablue', 
                               'potato' => 'bluebla', 
                               'cauliflower' => 'blabla'
                           ), 
            'Fruit' => array(
                               'apple' => 'chicken65', 
                               'orange' => 'salsafood', 
                               'pear' => 'lokkulakka'
            )
);
是否可以使用索引作为数字来访问数组,而不是使用键的名称?
因此,为了访问chicken65,我将键入echo$food[1][0];我不想使用数字作为键,因为它是一个大数组,如果我使用字符串作为键,它将更方便用户使用,并且它将允许我在高级级别执行for循环。

您可以执行foreach循环,以实现与典型for循环大致相同的功能

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

您可以使用foreach循环来实现与典型for循环大致相同的功能

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

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

try开头


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

$food[1][0]开头$食物[1][apple']
,因此在这种情况下不能使用数字键。

$food[1][0]!=$食物[1]['apple']
,因此在这种情况下不能使用数字键。

您可以在数组上使用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]]);
}
$aTest=array('lol'=>'lolval','rofl'=>'roflval');
$aKeys=阵列密钥($aTest);
$iCnt=计数($aKeys);
对于($i=0;$i<$iCnt;++$i)
{
var_dump($aTest[$aKeys[$i]]);
}
您需要在二维空间执行此操作,但我不建议这样做。实际上,它比大多数其他解决方案更具干扰性且速度较慢。

您可以在阵列上使用array\u 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]]);
}
$aTest=array('lol'=>'lolval','rofl'=>'roflval');
$aKeys=阵列密钥($aTest);
$iCnt=计数($aKeys);
对于($i=0;$i<$iCnt;++$i)
{
var_dump($aTest[$aKeys[$i]]);
}

您需要在二维空间执行此操作,但我不建议这样做。实际上,它比大多数其他解决方案更具强制性,速度也更慢。

您可能想尝试函数数组值,但由于您处理的是多变量数组,下面是一位php程序员发布的解决方案


但是使用foreach比for更容易。

您可能想尝试函数array\u值,但由于您处理的是多变量数组,下面是一位php程序员发布的解决方案


但是使用foreach比使用for更容易。

我不认为这条路线有什么固有的东西

而且,看起来您确实在尝试对数组使用进行一些扩展

你应该在这个问题上采取行动

创建一个FoodFamily对象和一个Food对象,必要时可以在其中存储数组,这样就可以编写一个友好的用户友好代码,并在需要时添加索引


OOP几乎总是答案:)

我不认为这条路线有什么固有的东西

而且,看起来您确实在尝试对数组使用进行一些扩展

你应该在这个问题上采取行动

创建一个FoodFamily对象和一个Food对象,必要时可以在其中存储数组,这样就可以编写一个友好的用户友好代码,并在需要时添加索引


OOP几乎总是答案:)

如果你不想使用数字作为键,为什么要问如何做?为什么不使用foreach,而不是for循环。如果你不想使用数字作为键,为什么要问如何做?为什么不使用foreach,而不是for循环。当您可以简单地使用foreach而不使用它时,为什么要这样做?我不会这样做,我会使用foreach。我认为这个解决方案更接近OP的要求(没有双关语)。当你可以简单地使用foreach而不使用它时,为什么要这样做?我不会这样做,我会使用foreach。我认为这个解决方案更接近OP的要求(不是双关语)。数组值这是我需要的:Darray值这是我需要的:Darray值这是我需要的:DEnglish不是我的母语数组值这是我需要的:DEnglish不是我的母语