Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.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_Function - Fatal编程技术网

Php 向函数添加计数器

Php 向函数添加计数器,php,function,Php,Function,我有一个冒泡排序函数,我想给swap函数添加一个计数器。所以基本上,我想知道它交换数组中的数字多少次,以便从低>高对其进行排序 <?php function bubble_sort($arr) { $size = count($arr); for ($i=0; $i<$size; $i++) { for ($j=0; $j<$size-1-$i; $j++) { if ($arr[$j+1] < $arr[$j]) { s

我有一个冒泡排序函数,我想给swap函数添加一个计数器。所以基本上,我想知道它交换数组中的数字多少次,以便从低>高对其进行排序

<?php

function bubble_sort($arr) {
$size = count($arr);
for ($i=0; $i<$size; $i++) {
    for ($j=0; $j<$size-1-$i; $j++) {
        if ($arr[$j+1] < $arr[$j]) {
            swap($arr, $j, $j+1);
        }
    }
}
return $arr;
}

function swap(&$arr, $a, $b){
$tmp = $arr[$a];
$arr[$a] = $arr[$b];
$arr[$b] = $tmp;
}


$arr = array(81,4,12,-1,99,100,-10);

echo("Voor bubble sort<br>");
print_r($arr);

$arr = bubble_sort($arr);
echo("<br>Na bubble sort<br>");
print_r($arr);

?>


我尝试在交换函数中添加计数器+,但这给了我错误。

您不能对尚未初始化的变量执行计数器+。在调用swap函数之前,需要将其设置为0。您还可以每次将$count传递给函数或使用全局变量。

我创建了一个小类,这就是您要查找的吗

class bubble {

    public $counter = array();
    public $arr = null;

    public function __construct($arr){
        $this->arr = $arr;
    }

    public function sort(){
        $size = count($this->arr);

        for ($i=0; $i<$size; $i++) {

            for ($j=0; $j<$size-1-$i; $j++) {

                if ($this->arr[$j+1] < $this->arr[$j]) {
                    $this->swap($this->arr, $j, $j+1);
                }

            }
        }

    }

    function swap(&$arr, $a, $b){
        $tmp = $arr[$a];
        $this->arr[$a] = $arr[$b];
        $this->arr[$b] = $tmp;
        $this->counter[$a]++;
    }
}

$arr = array(81,4,12,-1,99,100,-10);
$bubble = new bubble($arr);

echo("Voor bubble sort<br>");
print_r($bubble->arr);

$bubble->sort();
echo("<br>Na bubble sort<br>");
print_r($bubble->arr);

echo("<br>Swap counter (by key)<br>");
print_r($bubble->counter);
类气泡{
public$counter=array();
public$arr=null;
公共功能构造($arr){
$this->arr=$arr;
}
公共函数排序(){
$size=count($this->arr);
对于($i=0;$iarr[$j]){
$this->swap($this->arr,$j,$j+1);
}
}
}
}
功能交换(&$arr、$a、$b){
$tmp=$arr[$a];
$this->arr[$a]=$arr[$b];
$this->arr[$b]=$tmp;
$this->counter[$a]++;
}
}
$arr=数组(81,4,12,-1,99100,-10);
$bubble=新的bubble($arr);
回声(“Voor气泡排序
”; 打印($bubble->arr); $bubble->sort(); 回声(
Na气泡排序
); 打印($bubble->arr); 回声(
交换计数器(按键)
”; 打印(气泡->计数器);
演示:

提示#1:生活和结束