在php中从关联数组获取列值
我有一个表单数组:在php中从关联数组获取列值,php,associative-array,Php,Associative Array,我有一个表单数组: $records = array( array( 'id' => 2135, 'first_name' => 'John', 'last_name' => 'Doe', ), array( 'id' => 3245, 'first_name' => 'Sally', 'last_name' => 'Smith',
$records = array(
array(
'id' => 2135,
'first_name' => 'John',
'last_name' => 'Doe',
),
array(
'id' => 3245,
'first_name' => 'Sally',
'last_name' => 'Smith',
),
array(
'id' => 5342,
'first_name' => 'Jane',
'last_name' => 'Jones',
),
array(
'id' => 5623,
'first_name' => 'Peter',
'last_name' => 'Doe',
)
);
我想要这样的输出:
编辑:
Array
( array('first_Name' => John),
array('first_Name'=> Sally),
array('first_Name'=> Jane),
array('first_Name'=> Peter)
);
Array
(
[id] => Array
(
[0] => 2135
[1] => 3245
[2] => 5342
[3] => 5623
)
[first_name] => Array
(
[0] => John
[1] => Sally
[2] => Jane
[3] => Peter
)
[last_name] => Array
(
[0] => Doe
[1] => Smith
[2] => Jones
[3] => Doe
)
)
这是可以实现的吗?这是不可能的,因为关联数组中不能有同一个键的多个元素。这是不可能的,因为关联数组中不能有同一个键的多个元素。因为数组中不能有重复的键,所以不能这样做 这是一个相关的问题: 本文解释PHP如何在内部存储数组: 编辑后回答:
$arr = array();
foreach($records as $value) {
$arr[] = array('first_name' => $value['first_name']);
}
print_r($arr);
无法执行此操作,因为数组中不能有重复的键 这是一个相关的问题: 本文解释PHP如何在内部存储数组: 编辑后回答:
$arr = array();
foreach($records as $value) {
$arr[] = array('first_name' => $value['first_name']);
}
print_r($arr);
你可以试试这个
$arr_output = array();
foreach($records as $key=>$arr)
{
$arr_output['id'][] = $arr['id'];
$arr_output['first_name'][] = $arr['first_name'];
$arr_output['last_name'][] = $arr['last_name'];
}
print_r($arr_output['first_name']); // display all first names
print_r($arr_output); // display complete output array.
输出:
Array
( array('first_Name' => John),
array('first_Name'=> Sally),
array('first_Name'=> Jane),
array('first_Name'=> Peter)
);
Array
(
[id] => Array
(
[0] => 2135
[1] => 3245
[2] => 5342
[3] => 5623
)
[first_name] => Array
(
[0] => John
[1] => Sally
[2] => Jane
[3] => Peter
)
[last_name] => Array
(
[0] => Doe
[1] => Smith
[2] => Jones
[3] => Doe
)
)
你可以试试这个
$arr_output = array();
foreach($records as $key=>$arr)
{
$arr_output['id'][] = $arr['id'];
$arr_output['first_name'][] = $arr['first_name'];
$arr_output['last_name'][] = $arr['last_name'];
}
print_r($arr_output['first_name']); // display all first names
print_r($arr_output); // display complete output array.
输出:
Array
( array('first_Name' => John),
array('first_Name'=> Sally),
array('first_Name'=> Jane),
array('first_Name'=> Peter)
);
Array
(
[id] => Array
(
[0] => 2135
[1] => 3245
[2] => 5342
[3] => 5623
)
[first_name] => Array
(
[0] => John
[1] => Sally
[2] => Jane
[3] => Peter
)
[last_name] => Array
(
[0] => Doe
[1] => Smith
[2] => Jones
[3] => Doe
)
)
试试这个
$records = array(
array(
'id' => 2135,
'first_name' => 'John',
'last_name' => 'Doe',
),
array(
'id' => 3245,
'first_name' => 'Sally',
'last_name' => 'Smith',
),
array(
'id' => 5342,
'first_name' => 'Jane',
'last_name' => 'Jones',
),
array(
'id' => 5623,
'first_name' => 'Peter',
'last_name' => 'Doe',
)
);
$tmp = array('first_name' => '');
foreach ($records as &$record) {
$record = array_intersect_key($record, $tmp);
// or $record = array('first_name' => $record['first_name']);
}
unset($record);
var_dump($records);
试试这个
$records = array(
array(
'id' => 2135,
'first_name' => 'John',
'last_name' => 'Doe',
),
array(
'id' => 3245,
'first_name' => 'Sally',
'last_name' => 'Smith',
),
array(
'id' => 5342,
'first_name' => 'Jane',
'last_name' => 'Jones',
),
array(
'id' => 5623,
'first_name' => 'Peter',
'last_name' => 'Doe',
)
);
$tmp = array('first_name' => '');
foreach ($records as &$record) {
$record = array_intersect_key($record, $tmp);
// or $record = array('first_name' => $record['first_name']);
}
unset($record);
var_dump($records);
您可以实现以下(编辑的)问题:
$new_array = array();
foreach($records as $record)
$new_array[] = array('first_Name'=>$records['first_name']);
您可以实现以下(编辑的)问题:
$new_array = array();
foreach($records as $record)
$new_array[] = array('first_Name'=>$records['first_name']);
如果你想在数组中用数组的方式,它肯定会用索引键生成,如下所示
Array
( '0' => array('first_Name' => John),
'1' => array('first_Name'=> Sally),
'2' => array('first_Name'=> Jane),
'3' => array('first_Name'=> Peter)
);
试试这个
foreach($records as $record) {
$name_array[] = Array('first_Name' =>$record['first_name']);
}
print_r($name_array);
您的输出将是
Array
(
[0] => Array
(
[first_Name] => John
)
[1] => Array
(
[first_Name] => Sally
)
[2] => Array
(
[first_Name] => Jane
)
[3] => Array
(
[first_Name] => Peter
)
)
如果你想在数组中用数组的方式,它肯定会用索引键生成,如下所示
Array
( '0' => array('first_Name' => John),
'1' => array('first_Name'=> Sally),
'2' => array('first_Name'=> Jane),
'3' => array('first_Name'=> Peter)
);
试试这个
foreach($records as $record) {
$name_array[] = Array('first_Name' =>$record['first_name']);
}
print_r($name_array);
您的输出将是
Array
(
[0] => Array
(
[first_Name] => John
)
[1] => Array
(
[first_Name] => Sally
)
[2] => Array
(
[first_Name] => Jane
)
[3] => Array
(
[first_Name] => Peter
)
)
要获得所需的输出,可以使用
array\u-map
,不过可以使用php5.5中新增的array\u-column
获得类似的输出
使用数组映射():
注意:array\u column
不使用first\u name
键生成子数组。要获得所需的输出,可以使用array\u map
,尽管可以使用php5.5中新增的array\u column
获得类似的输出
使用数组映射():
注意:array\u column
不使用first\u name
键生成子数组。如何将first\u name
作为数组的多个索引?具有相同键的,不可能的关联数组不能持有相同的索引键如何将first\u name
作为数组的多个索引?具有相同键,不可能一个关联数组不能连续地保存相同的索引键?这就构成了一个答案?@nl-x和Amal-我不是说答案是错的。我指的是一句话被贴出来作为答案。它很可能被张贴为一个comment@asprin例如我知道你是那个意思。那么,为什么不呢?@nl-x@asprin:根据你的链接,这是一个答案。(见你链接中的第8页)它说这应该是一个答案,不应该被报告为NaA(不是答案)严重吗?这就构成了一个答案?@nl-x和Amal-我不是说答案是错的。我指的是一句话被贴出来作为答案。它很可能被张贴为一个comment@asprin例如我知道你是那个意思。那么,为什么不呢?@nl-x@asprin:根据你的链接,这是一个答案。(见你链接的第8页)它说这应该是一个答案,不应该被报告为NaA(不是答案)。这不是OP的内容askin@user2129794正如我对您的问题所作的评论,相同的密钥在数组中是不可能的。你可以像我回答的那样使用它。这不是OP的意思askin@user2129794正如我对您的问题所作的评论,相同的密钥在数组中是不可能的。你可以像我回答的那样使用它。或者只是:array\u walk($records,function($v,$k)use(&$arr){$arr[]=['first\u name'=>$v['first\u name']];})代码>这与nl-x的答案有什么不同?加上你在nl-x发布他的文章后编辑了你的文章answer@asprin可能我的打字速度比nl-x慢。当我打字的时候,他回答说。@asprin:这并不是说有上千种不同的方法来实现这一点:-)@asprin为了你的幸福。现在不同了。+1。或者只是:array\u walk($records,function($v,$k)use(&$arr){$arr[]=['first\u name'=>$v['first\u name']];})代码>这与nl-x的答案有什么不同?加上你在nl-x发布他的文章后编辑了你的文章answer@asprin可能我的打字速度比nl-x慢。当我打字的时候,他回答说。@asprin:这并不是说有上千种不同的方法来实现这一点:-)@asprin为了你的幸福。现在不同了。这与和是一样的。不确定是否有另一个相同的内容将是有益的。这是相同的和。不确定是否有另一个相同的内容将是有益的。