如何在PHP中保持相同的数组键
有人能告诉我如何在php数组中允许重复键吗?我已经阅读了所有关于这个问题的相同帖子,它没有回答我的问题 在下面的示例中,我希望传递第二个“separator”键而不重命名它如何在PHP中保持相同的数组键,php,arrays,Php,Arrays,有人能告诉我如何在php数组中允许重复键吗?我已经阅读了所有关于这个问题的相同帖子,它没有回答我的问题 在下面的示例中,我希望传递第二个“separator”键而不重命名它 $data=[ “用户名”=>数组( '键入'=>'复选框', 'id'=>'username', “标签”=>“显示用户名字段”, “默认值”=>true, ), '分隔符'=>数组( '类型'=>'分隔符', “高度”=>“薄” ), 'heading'=>数组( 'type'=>'textarea',
$data=[
“用户名”=>数组(
'键入'=>'复选框',
'id'=>'username',
“标签”=>“显示用户名字段”,
“默认值”=>true,
),
'分隔符'=>数组(
'类型'=>'分隔符',
“高度”=>“薄”
),
'heading'=>数组(
'type'=>'textarea',
“id”=>“标题”,
“标签”=>“标题文本”,
'默认'=>'',
),
'分隔符'=>数组(
'类型'=>'分隔符',
“高度”=>“薄”
),
'占位符'=>数组(
'类型'=>'文本',
“id'=>“占位符”,
“标签”=>“占位符文本”,
'默认'=>'您的姓名',
),
];
回声';
打印(数据);
回声'代码>数组的初始化格式错误,如下所示
$data = [
[
'key_name' => 'username',
'type' => 'checkbox',
'id' => 'username',
'label' => 'Show Username Field',
'default' => true,
],
[
'key_name' => 'separator',
'type' => 'separator',
'height' => 'thin'
],
[
'key_name' => 'heading',
'type' => 'textarea',
'id' => 'heading',
'label' => 'Heading Text',
'default' => '',
],
[
'key_name' => 'separator',
'type' => 'separator',
'height' => 'thin'
],
[
'key_name' => 'placeholder',
'type' => 'text',
'id' => 'placeholder',
'label' => 'Placeholder Text',
'default' => 'Your name',
],
];
$data=[
“用户名”=>数组(
'键入'=>'复选框',
'id'=>'username',
“标签”=>“显示用户名字段”,
“默认值”=>true,
),
“分隔符”=>数组(
排列(
'类型'=>'分隔符',
“高度”=>“薄”
),
排列(
'类型'=>'分隔符',
“高度”=>“薄”
)
),
'占位符'=>数组(
'类型'=>'文本',
“id'=>“占位符”,
“标签”=>“占位符文本”,
'默认'=>'您的姓名',
),
];
回声';
打印(数据);
回声'
数组的初始化格式错误,如下所示
$data = [
[
'key_name' => 'username',
'type' => 'checkbox',
'id' => 'username',
'label' => 'Show Username Field',
'default' => true,
],
[
'key_name' => 'separator',
'type' => 'separator',
'height' => 'thin'
],
[
'key_name' => 'heading',
'type' => 'textarea',
'id' => 'heading',
'label' => 'Heading Text',
'default' => '',
],
[
'key_name' => 'separator',
'type' => 'separator',
'height' => 'thin'
],
[
'key_name' => 'placeholder',
'type' => 'text',
'id' => 'placeholder',
'label' => 'Placeholder Text',
'default' => 'Your name',
],
];
$data=[
“用户名”=>数组(
'键入'=>'复选框',
'id'=>'username',
“标签”=>“显示用户名字段”,
“默认值”=>true,
),
“分隔符”=>数组(
排列(
'类型'=>'分隔符',
“高度”=>“薄”
),
排列(
'类型'=>'分隔符',
“高度”=>“薄”
)
),
'占位符'=>数组(
'类型'=>'文本',
“id'=>“占位符”,
“标签”=>“占位符文本”,
'默认'=>'您的姓名',
),
];
回声';
打印(数据);
回声'
在关联数组中不可能有相同的键
如果给定相同的键,则会覆盖它
根据您的数据,我假设您正在尝试渲染表单
基于此,以下是我的建议
将键名移动到数组中并利用它
示例
或者,如果仍然希望键名的顺序相同,请将其作为数组数组
示例
在关联数组中不可能有相同的键
如果给定相同的键,则会覆盖它
根据您的数据,我假设您正在尝试渲染表单
基于此,以下是我的建议
将键名移动到数组中并利用它
示例
或者,如果仍然希望键名的顺序相同,请将其作为数组数组
示例
这不能用你试图做的方式来做。数组键用于标识数组中的条目。只能有一个元素具有相同的键。因此,在您的示例中,使用分隔符键的第二个元素将覆盖第一个元素
所以你必须用另一种方法来解决它。一种方法是不使用显式键,只使用us数字索引。您已经将键值作为每个数组项中的id字段
看起来是这样的:
$data=[
数组(
'键入'=>'复选框',
'id'=>'username',
“标签”=>“显示用户名字段”,
“默认值”=>true,
),
数组(
'类型'=>'分隔符',
“高度”=>“薄”
),
数组(
'type'=>'textarea',
“id”=>“标题”,
“标签”=>“标题文本”,
'默认'=>'',
),
数组(
'类型'=>'分隔符',
“高度”=>“薄”
),
数组(
'类型'=>'文本',
“id'=>“占位符”,
“标签”=>“占位符文本”,
'默认'=>'您的姓名',
),
];
回声';
打印(数据);
回声';
您必须循环遍历条目才能找到特定的元素。但是,如果您是从数据生成html,我猜您无论如何都在循环使用它。这不能用您尝试的方式来完成。数组键用于标识数组中的条目。只能有一个元素具有相同的键。因此,在您的示例中,使用分隔符键的第二个元素将覆盖第一个元素
所以你必须用另一种方法来解决它。一种方法是不使用显式键,只使用us数字索引。您已经将键值作为每个数组项中的id字段
看起来是这样的:
$data=[
数组(
'键入'=>'复选框',
'id'=>'username',
“标签”=>“显示用户名字段”,
“默认值”=>true,
),
数组(
'类型'=>'分隔符',
“高度”=>“薄”
),
数组(
'type'=>'textarea',
“id”=>“标题”,
“标签”=>“标题文本”,
'默认'=>'',
),
数组(
'类型'=>'分隔符',
“高度”=>“薄”
),
数组(
'类型'=>'文本',
“id'=>“占位符”,
“标签”=>“占位符文本”,
'默认'=>'您的姓名',
),
];
回声';
打印(数据);
回声';
您必须循环遍历条目才能找到特定的元素。但是如果你是g
$data = [
[
'username' => [
'type' => 'checkbox',
'id' => 'username',
'label' => 'Show Username Field',
'default' => true,
],
],
[
'separator' => [
'type' => 'separator',
'height' => 'thin'
],
],
[
'heading' => [
'type' => 'textarea',
'id' => 'heading',
'label' => 'Heading Text',
'default' => '',
],
],
[
'separator' => [
'type' => 'separator',
'height' => 'thin'
],
],
[
'placeholder' => [
'type' => 'text',
'id' => 'placeholder',
'label' => 'Placeholder Text',
'default' => 'Your name',
],
]
];