PHP中的简单数组操作

PHP中的简单数组操作,php,arrays,Php,Arrays,假设我有以下数组: Array ( [0] => Array ( [0] => a [1] => 1 ) [1] => Array ( [0] => b [1] => 8 ) [2] => Array ( [0] => c [1] => 16 ) [3] => Array (

假设我有以下数组:

Array
(
[0] => Array
    (
        [0] => a
        [1] => 1
    )

[1] => Array
    (
        [0] => b
        [1] => 8
    )

[2] => Array
    (
        [0] => c
        [1] => 16
    )

[3] => Array
    (
        [0] => d
        [1] => 21
    )
....

)
内部数组中的数字是从范围(0100)随机生成的,它们不会重复

我想创建一个循环,它将从0迭代到100,并检查循环迭代是否等于上述数组的内部数。例外结果是包含100个元素的数组:

Array
(
  [0] => const
  [1] => a
  [2] => const
  [3] => const
  [4] => const
  [5] => const
  [6] => const
  [7] => const
  [8] => b
  [9] => const
  [10] => const
  .
  .
  [16] => c
  [17] => const
  .
  .
  [21] => d
  [22] => const
  [23] => const
  .
  .
)
我需要的是:

for ($i=0; $i < 100; $i++) {
  if($i === $name[$i][1]) {
    $new_array[] = $name[$i][0];
  } else {
    $new_array[] = 'const';
  }
}
$new_array = array();

foreach ($name as $n) {
  $new_array[$n[1]] = $n[0];
}

for ($i=0; $i<100; $i++) {
  if (!isset($new_array[$i])) {
    $new_array[$i] = 'const';
  }
}
ksort($new_array);
($i=0;$i<100;$i++)的
{
如果($i==$name[$i][1]){
$new_array[]=$name[$i][0];
}否则{
$new_数组[]='const';
}
}
但是我不能让它工作,所以我需要一些帮助

我不是以英语为母语的人,所以希望你能理解我想要实现的目标。谢谢您的帮助。

使用

for ($i=0; $i < 100; $i++) {
 if($i === $name[$i][1]) {
   $new_array[$i] = $name[$i][0];
  }
  else{
    $new_array[$i] = 'const';
  }
}
($i=0;$i<100;$i++)的
{
如果($i==$name[$i][1]){
$new_数组[$i]=$name[$i][0];
}
否则{
$new_数组[$i]='const';
}
}
使用

($i=0;$i<100;$i++)的
{
如果($i==$name[$i][1]){
$new_数组[$i]=$name[$i][0];
}
否则{
$new_数组[$i]='const';
}
}
用于($i=0;$i
用于($i=0;$i
为什么要使用
idential
运算符而不是
Equal

for ($i=0; $i < 100; $i++) {
  if($i == $name[$i][1]) {
    $new_array[] = $name[$i][0];
  } else {
    $new_array[] = 'const';
  }
}
($i=0;$i<100;$i++)的
{
如果($i==$name[$i][1]){
$new_array[]=$name[$i][0];
}否则{
$new_数组[]='const';
}
}

为什么要使用
idential
运算符而不是
Equal

for ($i=0; $i < 100; $i++) {
  if($i == $name[$i][1]) {
    $new_array[] = $name[$i][0];
  } else {
    $new_array[] = 'const';
  }
}
($i=0;$i<100;$i++)的
{
如果($i==$name[$i][1]){
$new_array[]=$name[$i][0];
}否则{
$new_数组[]='const';
}
}

您需要一个嵌套循环,如:

for ($i=0; $i < 100; $i++):
   $found = false;
   foreach($name as $array):
      if($array[1] === $i):
         $found = true;
         $new_array[] = $array[0];
       endif;
   endforeach;
  if(!$found):
    $new_array[] = 'const';
  endif;
endfor;
($i=0;$i<100;$i++)的

$found=false;
foreach($name作为$array):
如果($array[1]==$i):
$found=true;
$new_array[]=$array[0];
endif;
endforeach;
如果找到(!$):
$new_数组[]='const';
endif;
endfor;

您需要一个嵌套循环,如:

for ($i=0; $i < 100; $i++):
   $found = false;
   foreach($name as $array):
      if($array[1] === $i):
         $found = true;
         $new_array[] = $array[0];
       endif;
   endforeach;
  if(!$found):
    $new_array[] = 'const';
  endif;
endfor;
($i=0;$i<100;$i++)的

$found=false;
foreach($name作为$array):
如果($array[1]==$i):
$found=true;
$new_array[]=$array[0];
endif;
endforeach;
如果找到(!$):
$new_数组[]='const';
endif;
endfor;

它不起作用的原因是,每次增加
$i
时,您都试图在
$name[$i]
中进行匹配,而不是检查
$name
中的所有数组,我能想到的最简单的解决方案(并执行最少的迭代次数)是执行以下操作:

for ($i=0; $i < 100; $i++) {
  if($i === $name[$i][1]) {
    $new_array[] = $name[$i][0];
  } else {
    $new_array[] = 'const';
  }
}
$new_array = array();

foreach ($name as $n) {
  $new_array[$n[1]] = $n[0];
}

for ($i=0; $i<100; $i++) {
  if (!isset($new_array[$i])) {
    $new_array[$i] = 'const';
  }
}
ksort($new_array);
$new_array=array();
foreach($n名称){
$new_数组[$n[1]]=$n[0];
}
对于($i=0;$i
value
对(例如,
[1]=>'a',[8]=>'b'
),则在
for
循环中,只需检查
键($i)
是否已设置,如果未设置,则使用
值设置它。最后,按键对
$new\u数组进行排序


本例中的迭代次数是
count($name)+100
,而例如嵌套循环是
100*count($name)
,它不起作用的原因是每次
$i
增加时,您都试图在
$name[$i]中进行匹配
,并且不检查
$name
中的所有数组,我能想到的最简单的解决方案(并执行最少的迭代次数)是执行以下操作:

for ($i=0; $i < 100; $i++) {
  if($i === $name[$i][1]) {
    $new_array[] = $name[$i][0];
  } else {
    $new_array[] = 'const';
  }
}
$new_array = array();

foreach ($name as $n) {
  $new_array[$n[1]] = $n[0];
}

for ($i=0; $i<100; $i++) {
  if (!isset($new_array[$i])) {
    $new_array[$i] = 'const';
  }
}
ksort($new_array);
$new_array=array();
foreach($n名称){
$new_数组[$n[1]]=$n[0];
}
对于($i=0;$i
value
对(例如,
[1]=>'a',[8]=>'b'
),则在
for
循环中,只需检查
键($i)
是否已设置,如果未设置,则使用
值设置它。最后,按键对
$new\u数组进行排序


本例中的迭代次数是
count($name)+100
,而例如嵌套循环是
100*count($name)

我可以问一下您的代码的输出是什么吗?您尝试了什么?,,…列表继续,根据所需的输出,从许多数组函数中选择一个。我可以问您的代码的输出是什么?您尝试了什么?,,,,…列表继续,根据所需的输出,从许多数组函数中选择一个$new\u array[]如果键是连续的,则等于$new_数组[$i]。$new_数组[]如果键是连续的,则等于$new_数组[$i]