⑴ 如何在php定义一个类的数组
<?
class Animal{
function bake(){
echo "我在叫……";
}
}
$array=array();
for($i=0;$i<3;$i++){
array_push($array,new Animal());
}
echo $array[0]->bake();
?>
⑵ PHP的stdClass类详解及几种数组对象转换方法
一、stdClass数组转对象
$arr=array();
$arr['a']=1;
$arr['b']=2;
$arr['c']=3;
$object=newstdClass;
foreach($arras$key=>$value){
$object->$key=$value;
}
var_mp($object);
结果输出如下:
object(stdClass)#1(3){
["a"]=>
int(1)
["b"]=>
int(2)
["c"]=>
int(3)
}
二、对象转数组
functionobject_to_array($obj)
{
$_arr=is_object($obj)?get_object_vars($obj):$obj;
foreach($_arras$key=>$val)
{
$val=(is_array($val)||is_object($val))?object_to_array($val):$val;
$arr[$key]=$val;
}
return$arr;
}
三、ArrayObject方法数组转对象
$arr=array('key1'=>'test1','key2'=>'test2');
var_mp(newArrayObject($arr));
结果输出如下:
object(ArrayObject)#1(1){
["storage":"ArrayObject":private]=>
array(2){
["key1"]=>
string(5)"test1"
["key2"]=>
string(5)"test2"
}
}
⑶ PHP 中怎样把类中的属性转化为一个数组
<?php
class test{
var $a1=1;
var $a2=2;
var $a3=3;
function aaa(){
return false;
}
}
$a = new test();
$array = array();
foreach ($a as $b){
$array[] = $b;
}
print_r($array);
?>
⑷ php创建一个类,在类中声明一个数组存放另一个对象,为什么无法调用数组中对象的方法
//新建一个类User用来存放这,三个数据
//结果放到一个User数组中,你看这可以吗?
//还是说要放到一个list中?
public class ObjectTest {
public static void main(String[] args) {
String[] id = new String[8];
String[] type = new String[8];
String[] username = new String[8];
User[] users = getUsers(type, id, username);
}
private static User[] getUsers(String[] type, String[] id, String[] username) {
User[] users = new User[type.length];
for (int i = 0; i < type.length; i++) {
users[i] = new User(id[i], type[i], username[i]);
}
return users;
}
}
class User {
public User(String id, String tpye, String username) {
this.tpye = tpye;
this.id = id;
this.username = username;
}
private String tpye;
private String id;
private String username;
public String getTpye() {
return this.tpye;
}
public String getId() {
return this.id;
}
public String getUsername() {
return this.username;
}
public void setTpye(String tpye) {
this.tpye = tpye;
}
public void setId(String id) {
this.id = id;
}
public void setUsername(String username) {
this.username = username;
}
}
⑸ php类中数组怎么使用
你把 private $a; 定义成 public $a,就可以直接用$obj->a 了。
$obj->a['key'] 就是你要访问的值。
⑹ php 元素为类的数组 的排序问题
可以排序,但是你得自己写一个比较类变量大小的函数,使用函数usort进行排序,以下内容粘贴自PHP手册:
bool usort ( array &$array, callback $cmp_function )
本函数将用用户自定义的比较函数对一个数组中的值进行排序。如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数。
比较函数必须在第一个参数被认为小于,等于或大于第二个参数时分别返回一个小于,等于或大于零的整数。
注意: 如果两个成员比较结果相同,则它们在排序后的数组中的顺序未经定义。到 PHP 4.0.6 之前,用户自定义函数将保留这些单元的原有顺序。但是由于在 4.1.0 中引进了新的排序算法,结果将不是这样了,因为对此没有一个有效的解决方案。
注意: 本函数为 array 中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。
如果成功则返回 TRUE,失败则返回 FALSE。
例 311. usort() 例子
<?php
function cmp($a, $b)
{
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
$a = array(3, 2, 5, 6, 1);
usort($a, "cmp");
foreach ($a as $key => $value) {
echo "$key: $value\n";
}
?>
上例将输出:
0: 1
1: 2
2: 3
3: 5
4: 6
注意: 很明显在这个小例子中用 sort() 函数更合适。
例 312. 使用多维数组的 usort() 例子
<?php
function cmp($a, $b)
{
return strcmp($a["fruit"], $b["fruit"]);
}
$fruits[0]["fruit"] = "lemons";
$fruits[1]["fruit"] = "apples";
$fruits[2]["fruit"] = "grapes";
usort($fruits, "cmp");
while (list($key, $value) = each($fruits)) {
echo "\$fruits[$key]: " . $value["fruit"] . "\n";
}
?>
当排序多维数组时,$a 和 $b 包含到数组第一个索引的引用。
上例将输出:
$fruits[0]: apples
$fruits[1]: grapes
$fruits[2]: lemons
例 313. 使用对象的成员函数的 usort() 例子
<?php
class TestObj {
var $name;
function TestObj($name)
{
$this->name = $name;
}
/* This is the static comparing function: */
function cmp_obj($a, $b)
{
$al = strtolower($a->name);
$bl = strtolower($b->name);
if ($al == $bl) {
return 0;
}
return ($al > $bl) ? +1 : -1;
}
}
$a[] = new TestObj("c");
$a[] = new TestObj("b");
$a[] = new TestObj("d");
usort($a, array("TestObj", "cmp_obj"));
foreach ($a as $item) {
echo $item->name . "\n";
}
?>
上例将输出:
b
c
d
⑺ php 类里能包含数组吗
在class定义外的变量的作用域达不到class定义的里面,
$this->x=$_arr['pagetitle_index']; ------------------- $_arr['pagetitle_index']这个值是个NULL
必须在实例化时用$v把参数传进class里:
<?php
$_arr=array();
$_arr['pagetitle_index']='心想事成';
class Something {
var $x;
function Something($v) {
$this->x=$v;
}
function getX() {
return $this->x;
}
}
$obj=new Something($_arr['pagetitle_index']); // 实例化时传参
$see=$obj->getX();
echo $see."<br>";
?>
这个不是数组的问题。
⑻ php数组写法
rule_name是一个数组啊他应该有个原始类型的类型的,把rule_section数组当成一个数组数据加进去就行了。我把你的JSON改了一下。你看看
{
"code":100,
"message":"计费模式列表",
"rule_name":[
{
"id":"10",
"box_id":null,
"rule_name":"规则",
"gid":"10",
"rule_section":[
{
"id":"9",
"rule_id":"10",
"start_time":"00:00:00",
"end_time":"10:00:00",
"money":"6000",
"update_time":"1512528175"
},
{
"id":"10",
"rule_id":"10",
"start_time":"10:00:00",
"end_time":"20:00:00",
"money":"6000",
"update_time":"1512528175"
},
{
"id":"11",
"rule_id":"10",
"start_time":"20:00:00",
"end_time":"00:00:00",
"money":"6000",
"update_time":"1512528175"
},
{
"id":"7",
"rule_id":"9",
"start_time":"00:00:00",
"end_time":"12:00:00",
"money":"6000",
"update_time":"1512527986"
},
{
"id":"8",
"rule_id":"9",
"start_time":"12:00:01",
"end_time":"23:59:59",
"money":"6000",
"update_time":"1512527986"
},
{
"id":"5",
"rule_id":"8",
"start_time":"00:00:00",
"end_time":"12:00:00",
"money":"6000",
"update_time":"1511852577"
},
{
"id":"6",
"rule_id":"8",
"start_time":"12:00:01",
"end_time":"23:59:59",
"money":"6000",
"update_time":"1511852577"
}
]
},
{
"id":"9",
"box_id":null,
"rule_name":"规则",
"gid":"10",
"rule_section":[
{
"id":"9",
"rule_id":"10",
"start_time":"00:00:00",
"end_time":"10:00:00",
"money":"6000",
"update_time":"1512528175"
},
{
"id":"10",
"rule_id":"10",
"start_time":"10:00:00",
"end_time":"20:00:00",
"money":"6000",
"update_time":"1512528175"
},
{
"id":"11",
"rule_id":"10",
"start_time":"20:00:00",
"end_time":"00:00:00",
"money":"6000",
"update_time":"1512528175"
},
{
"id":"7",
"rule_id":"9",
"start_time":"00:00:00",
"end_time":"12:00:00",
"money":"6000",
"update_time":"1512527986"
},
{
"id":"8",
"rule_id":"9",
"start_time":"12:00:01",
"end_time":"23:59:59",
"money":"6000",
"update_time":"1512527986"
},
{
"id":"5",
"rule_id":"8",
"start_time":"00:00:00",
"end_time":"12:00:00",
"money":"6000",
"update_time":"1511852577"
},
{
"id":"6",
"rule_id":"8",
"start_time":"12:00:01",
"end_time":"23:59:59",
"money":"6000",
"update_time":"1511852577"
}
]
},
{
"id":"8",
"box_id":"1",
"rule_name":"规则名称",
"gid":"10",
"rule_section":[
{
"id":"9",
"rule_id":"10",
"start_time":"00:00:00",
"end_time":"10:00:00",
"money":"6000",
"update_time":"1512528175"
},
{
"id":"10",
"rule_id":"10",
"start_time":"10:00:00",
"end_time":"20:00:00",
"money":"6000",
"update_time":"1512528175"
},
{
"id":"11",
"rule_id":"10",
"start_time":"20:00:00",
"end_time":"00:00:00",
"money":"6000",
"update_time":"1512528175"
},
{
"id":"7",
"rule_id":"9",
"start_time":"00:00:00",
"end_time":"12:00:00",
"money":"6000",
"update_time":"1512527986"
},
{
"id":"8",
"rule_id":"9",
"start_time":"12:00:01",
"end_time":"23:59:59",
"money":"6000",
"update_time":"1512527986"
},
{
"id":"5",
"rule_id":"8",
"start_time":"00:00:00",
"end_time":"12:00:00",
"money":"6000",
"update_time":"1511852577"
},
{
"id":"6",
"rule_id":"8",
"start_time":"12:00:01",
"end_time":"23:59:59",
"money":"6000",
"update_time":"1511852577"
}
]
}
]
}
如果是PHP
classrule_nameBase{
....
//加上一条
rule_section=array();
}
//然后把rule_section的单元当做元素压进去就行了。
⑼ php stdclass 怎么转换为数组并遍历出来
使用mysql_fetch_assoc函数,具体用法可以查看一下手册,还有几个相关的函数,我一般是用这个。
$list = array();//声明一个数组用来存放数据
//$row 为取出来的一行的数据,把他放到$list里面
//$rs就是你从数据库查询出来的资源
while($row = mysql_fetch_assoc($rs)) {
$list[] = $row;
}
⑽ php类中,如何定义一个数组变量。
类中的数组变量定义跟正常的定义一样
例如:
<?php
class my_class {
public $array = array('a','b');
function my_function(){
return $this->$array;
}
}
$new_class = new my_class;
print_r($new_class->my_function);
?>