Php 将数组导入类并使用foreach循环

Php 将数组导入类并使用foreach循环,php,arrays,class,sorting,constructor,Php,Arrays,Class,Sorting,Constructor,我想使用foreach循环遍历数组$arr,同时也在排序函数my_sort中循环,但我不知道如何正确引用该数组。我设置了一个引用数组的公共构造函数,但我不确定在数组初始化后如何与它交互 imo有两个问题: 将数组“导入”到类中:您所做的一切都正常 $arr=array(“b”=>4,“a”=>2,“c”=>8,“d”=>6”); $sort=新排序($arr); 您的数组现在在类中被引用 对数组进行排序:向类中添加sort()函数 公共函数排序() { 返回uasort($this->

我想使用foreach循环遍历数组$arr,同时也在排序函数my_sort中循环,但我不知道如何正确引用该数组。我设置了一个引用数组的公共构造函数,但我不确定在数组初始化后如何与它交互

imo有两个问题:

  • 将数组“导入”到类中:您所做的一切都正常
$arr=array(“b”=>4,“a”=>2,“c”=>8,“d”=>6”);
$sort=新排序($arr);
您的数组现在在类中被引用

  • 对数组进行排序:向类中添加sort()函数
公共函数排序()
{
返回uasort($this->arr,array(uuu CLASS_uuu,“my_sort”);
}
使用函数

$sort->sort();
PS:你的my_排序函数是错误的,它不应该包含$this。使用另一个非静态函数遍历并抛出数组

您可以修改sort()函数,即:

公共函数排序()
{
foreach($this->arr as$item){
//东西
}
返回uasort($this->arr,array(uuu CLASS_uuu,“my_sort”);
}

imo有两个问题:

  • 将数组“导入”到类中:您所做的一切都正常
$arr=array(“b”=>4,“a”=>2,“c”=>8,“d”=>6”);
$sort=新排序($arr);
您的数组现在在类中被引用

  • 对数组进行排序:向类中添加sort()函数
公共函数排序()
{
返回uasort($this->arr,array(uuu CLASS_uuu,“my_sort”);
}
使用函数

$sort->sort();
PS:你的my_排序函数是错误的,它不应该包含$this。使用另一个非静态函数遍历并抛出数组

您可以修改sort()函数,即:

公共函数排序()
{
foreach($this->arr as$item){
//东西
}
返回uasort($this->arr,array(uuu CLASS_uuu,“my_sort”);
}

整理代码。。。。现在读起来容易多了问题是什么?有错误吗?某物..?致命错误:未捕获错误:当不在对象上下文中时使用$this对代码。。。。现在读起来容易多了问题是什么?有错误吗?某事..?致命错误:未捕获错误:不在对象上下文中使用$this
<?php
$arr=array("b"=>4,"a"=>2,"c"=>8,"d"=>"6");

class Sort {

    public $arr = array(); 

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

    static function my_sort($a,$b) {
        //I am trying to cycle through the array $arr within this class
        foreach ($this->arr as $key => $value) { 
            print "success";
        }

        if ($a==$b) 
            return 0;

        return ($a<$b)?-1:1;
    }

}

uasort($arr,array("Sort","my_sort")); 
print_r($arr);
?>