在PHP中创建数组

在PHP中创建数组,php,Php,如果我想用PHP创建一个具有以下格式的数组,最好的方法是什么?基本上,我希望事先声明数组,然后能够将值添加到person\u id、name和age 'person_id' => array('name'=>'jonah', 'age'=> 35) 根据您想如何使用它,您可以制作一个简单的对象: class Person { public $person_id; public $name; public $age; } $person = new P

如果我想用PHP创建一个具有以下格式的数组,最好的方法是什么?基本上,我希望事先声明数组,然后能够将值添加到
person\u id
name
age

'person_id' => array('name'=>'jonah', 'age'=> 35)

根据您想如何使用它,您可以制作一个简单的对象:

class Person
{
    public $person_id;
    public $name;
    public $age;
}

$person = new Person; // make the object beforehand
$person->person_id = 123; // their id
$person->name = 'Joe'; // my name
$person->age = 21; // yeah, right
这实际上与阵列相同(就其使用方式而言),除了:

  • 您使用的不是
    new array()
    而是
    new Person
    (无括号)
  • 使用
    ->item
    而不是使用
    ['item']
    访问项目

根据您想如何使用它,您可以制作一个简单的对象:

class Person
{
    public $person_id;
    public $name;
    public $age;
}

$person = new Person; // make the object beforehand
$person->person_id = 123; // their id
$person->name = 'Joe'; // my name
$person->age = 21; // yeah, right
这实际上与阵列相同(就其使用方式而言),除了:

  • 您使用的不是
    new array()
    而是
    new Person
    (无括号)
  • 使用
    ->item
    而不是使用
    ['item']
    访问项目

您可以从空数组开始:

$arr = Array();
然后将内容添加到该数组:

$arr['person_id'] = Array();
$arr['person_id']['name'] = "jonah";
$arr['person_id']['age'] = 35;

可以从空数组开始:

$arr = Array();
然后将内容添加到该数组:

$arr['person_id'] = Array();
$arr['person_id']['name'] = "jonah";
$arr['person_id']['age'] = 35;

对于第一个答案@Joe,首先,您的类不支持封装,因为您的属性是公共的。另外,对于不知道如何创建数组的人来说,这个概念可能有点复杂

对于答案,稍微改变一下@Joe提供的类,PHP提供了一种使用数组的简单方法:

如果此数组需要多行,则每行都有一个数字,如果没有,则仅删除一个条目的[0]

$persons = array();

$persons[0]['person_id'] = 1;
$persons[0]['name'] = 'John';
$persons[0]['age'] = '27';

对于第一个答案@Joe,首先,您的类不支持封装,因为您的属性是公共的。另外,对于不知道如何创建数组的人来说,这个概念可能有点复杂

对于答案,稍微改变一下@Joe提供的类,PHP提供了一种使用数组的简单方法:

如果此数组需要多行,则每行都有一个数字,如果没有,则仅删除一个条目的[0]

$persons = array();

$persons[0]['person_id'] = 1;
$persons[0]['name'] = 'John';
$persons[0]['age'] = '27';

对数组数据来说似乎有点过头了。是的,但这是一个选项:)不是最好的,而是一个选项。对数组数据来说似乎有点过头了。是的,但这是一个选项:)不是最好的,而是一个选项。实际上,如果我要在
for
循环(对于多个记录)中使用代码,我确实想问一件小事,我是否只需从
$persons[0]
中删除0?并将其替换为一个递增的变量,例如while($I<$numberOfLoops){$persons[$I]['person\u id']=1;}Simpley省略0(只有0)将让PHP自动为每个记录创建索引。如果您只是将数组用作集合,并且不依赖索引,则这非常有用:(…){$person=array();$person['name']='xyz';$person['age']=…;$persons[]=$person;}将把您在循环中创建的每个$person添加到$persons数组中,并将从0开始的索引分配给它们。是的,但如果删除0,您将无法跟踪存储在数组中的以前的信息。是的,您必须在本地填充子数组,并将其添加到$persons,这是最后一步(就像我在示例中所做的那样)。编辑:array_push与$persons[]相同,建议使用后者,请看,实际上我确实想问一件小事,如果我要在
for
循环中使用代码(用于多个记录),我是否可以从
$persons[0]中删除0
?准确地将其替换为递增的变量,例如while($i<$numberOfLoops){$persons[$i]['person\u id']=1;}简单地忽略0(只有0)将使PHP自动为每个记录创建索引。如果您只是将数组用作集合,并且不依赖索引,则这非常有用:(…){$person=array();$person['name']='xyz';$person['age']=…;$persons[]=$person;}将把您在循环中创建的每个$person添加到$persons数组中,并将从0开始的索引分配给它们。是的,但如果删除0,您将无法跟踪存储在数组中的以前的信息。是的,您必须在本地填充子数组,并将其添加到$persons,这是最后一步(就像我在示例中所做的那样)。编辑:array_push与$persons[]相同,建议使用后者,请参阅