Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
比较两个php数组,看看其中一个是否与另一个相反_Php_Arrays_Compare - Fatal编程技术网

比较两个php数组,看看其中一个是否与另一个相反

比较两个php数组,看看其中一个是否与另一个相反,php,arrays,compare,Php,Arrays,Compare,所以,这可能是一些简单的事情,我只是看得太多了,但我需要弄清楚如何做到这一点。这是一个我正在上课的问题,但我不希望有人帮我做我的工作(我永远不会那样学习),我更希望有一个好的起点。在本例中,我需要创建一个数组,对其排序,然后将其反转。我记下了那么多 最后一部分是将给定数组与可能反转的版本进行比较,如果反转正确,则输出“True”,否则输出“False”。它还需要在不使用内置php数组函数的情况下完成。我还是个编程新手,想学习。任何帮助都将不胜感激,因为我甚至不知道从哪里开始这最后一部分。 这就是

所以,这可能是一些简单的事情,我只是看得太多了,但我需要弄清楚如何做到这一点。这是一个我正在上课的问题,但我不希望有人帮我做我的工作(我永远不会那样学习),我更希望有一个好的起点。在本例中,我需要创建一个数组,对其排序,然后将其反转。我记下了那么多

最后一部分是将给定数组与可能反转的版本进行比较,如果反转正确,则输出“True”,否则输出“False”。它还需要在不使用内置php数组函数的情况下完成。我还是个编程新手,想学习。任何帮助都将不胜感激,因为我甚至不知道从哪里开始这最后一部分。 这就是我目前所拥有的

<?php

//Original array
$the_array = array(5,9,2,8,3,1,7,6,4);
$arrayString = implode(',',$the_array);
echo ("The original array is: ");
echo $arrayString;
echo "<br />";

//Sort loop
// Compares each value in the array to the next one by seeing if the value is greater then the next +1
// If the value is greater then the next value +1 then it stores the value and moves it into the next position.
for ($j = 0; $j < count($the_array); $j++)
{
    for ($i = 0; $i < count($the_array)-1; $i++)
    {
        if ($the_array[$i] > $the_array[$i+1])
        {
            $tmp = $the_array[$i+1];
            $the_array[$i+1] = $the_array[$i];
            $the_array[$i] = $tmp;
        }
    }
}
$arrayString = implode(',',$the_array);
echo ("The array after sorting is: ");
echo $arrayString;
echo "<br />";

//reversal loop
for ($tmp = sizeof($the_array) - 1; $tmp >= 0; $tmp--)
{
    $reverse[] = $the_array[$tmp]; //New reversed array
}
echo ("The reversed array is: ");
$reverseString = implode(',',$reverse);
echo $reverseString;
  • A
    设为第一个数组,将
    B
    设为第二个数组
  • 如果
    A的长度
    ==
    B的长度
    
    
    • 对于i=0到
      长度(A)
      -1
      • 如果
        A[i]
        !=<代码>B[长度(A)-1-i]
    • 返回错误
  • 返回
  • 其他
    • 返回错误
      • A
        设为第一个数组,将
        B
        设为第二个数组
      • 如果
        A的长度
        ==
        B的长度
        
        
        • 对于i=0到
          长度(A)
          -1
          • 如果
            A[i]
            !=<代码>B[长度(A)-1-i]
        • 返回错误
    • 返回
  • 其他
    • 返回错误

    • 最简单的方法当然是:

      $array1 = array(1,2,3);
      $array2 = array(3,2,1);
      
      if($array1 == array_reverse($array2)){
          echo 'Reverse duplicates';
      }
      
      如果您不能使用数组函数,那么我们可以使用
      for
      语句循环:

      <?php
      $array1 = array(1,2,3);
      $array2 = array(3,2,1);
      $future_array2 = array();
      
      for($x=(count($array1)-1);$x>=0;$x--){
          $future_array2[] = $array2[$x];
      }
      
      echo '<pre>',print_r($future_array2),'</pre>';
      
      $array2 = $future_array2;
      
      if($array1 == $array2){
          echo 'Reverse duplicates';
      }
      

      最简单的方式当然是:

      $array1 = array(1,2,3);
      $array2 = array(3,2,1);
      
      if($array1 == array_reverse($array2)){
          echo 'Reverse duplicates';
      }
      
      如果您不能使用数组函数,那么我们可以使用
      for
      语句循环:

      <?php
      $array1 = array(1,2,3);
      $array2 = array(3,2,1);
      $future_array2 = array();
      
      for($x=(count($array1)-1);$x>=0;$x--){
          $future_array2[] = $array2[$x];
      }
      
      echo '<pre>',print_r($future_array2),'</pre>';
      
      $array2 = $future_array2;
      
      if($array1 == $array2){
          echo 'Reverse duplicates';
      }
      

      您可以做的是首先检查两个数组的长度是否相同。如果不是这样,你就知道一个不是另一个的倒数

      接下来,从$arr1的开始到结束运行索引,并将其与$arr2的长度索引进行比较

      如果您被卡住,代码为:

      功能是反向的($a1,$a2){
      $n=计数($a1);
      如果($n!=count($a2)){return false;}
      
      对于($i=0;$i您可以做的是首先检查两个数组是否具有相同的长度。如果它们不是相同的长度,那么您就知道其中一个数组与另一个数组不是相反的

      接下来,从$arr1的开始到结束运行索引,并将其与$arr2的长度索引进行比较

      如果您被卡住,代码为:

      功能是反向的($a1,$a2){
      $n=计数($a1);
      如果($n!=count($a2)){return false;}
      
      对于($i=0;$i不要想得太多。没有理由实际反转其中一个数组

      你只需要在一个数组中循环,并将每个元素与另一个数组中对应的相反位置的元素进行比较。如果发现不匹配,你可以立即得出结论,你的答案是错误的

      这只适用于数组长度相同的情况,但如果数组长度不相同,则答案将自动为false,因此您可以在开始之前进行检查


      您应该能够在不到10行的代码中完成此操作。

      不要想得太多。没有理由实际反转其中一个数组

      你只需要在一个数组中循环,并将每个元素与另一个数组中对应的相反位置的元素进行比较。如果发现不匹配,你可以立即得出结论,你的答案是错误的

      这只适用于数组长度相同的情况,但如果数组长度不相同,则答案将自动为false,因此您可以在开始之前进行检查


      您应该能够在不到10行的代码中完成此操作。

      为什么您不能在给定数组上运行反转函数,然后将其与第二个数组进行比较,看看它是否确实与第二个数组相反?@Prix:不需要知道数组是否已排序,问题应该集中在如何确定两个数组是否与ea相反ch other.@DaveChen这称为激进编辑,不被接受。使用函数:
      排序($a)
      反向($a)
      检查反向($a,$b)
      。给定数组
      $a
      $b
      其中
      $b
      检查反向($a,$b)中
      $a的反向
      函数反转其中一个元素并比较循环中的每个元素。当然,您必须维护一个布尔标志来存储比较结果。一旦发现第一个不匹配项,您就可以从循环中断开。您是否明确需要进行排序和反转?有函数(
      sort()
      数组_reverse()
      分别)为什么不能在给定的数组上运行反转函数,然后将其与第二个数组进行比较,看看它是否确实与第二个数组相反?@Prix:不需要知道数组是否已排序,问题应该集中在如何确定两个数组是否彼此相反。@DaveChen t这叫做激进编辑,不被接受。使用函数:
      sort($a)
      reverse($a)
      checkReverse($a,$b)
      。给定数组
      $a
      $b
      ,其中
      $b
      checkReverse($a,$b)中的
      $a
      相反
      函数反转其中一个元素并比较循环中的每个元素。当然,您必须维护一个布尔标志来存储比较结果。您可以