我正在尝试解决如何清理我的数组,我的输出应该是:
1)所有数字索引和
2)无重复值。
这是我当前数组输出的样本:
注意:索引3。我正在将这些值解析到一个新的数组中,并且不需要它们中的任何一个。正如您所看到的,它们被合并到下面的数组中。
最终,我正在为.csv格式做准备,但是我需要我的数组具有某种类型的序列,以便以适当的表示形式保存数据。
Array // print_r();
(
[0] => 3350
[id] => 3350
[1] => Williamson New England Electric
[company] => Williamson New England Electric
[2] => bob@jojozzz.go
[email] => bob@jojozzz.go
[3] => Pumps & Motors,Electronic Systems,Electrical Supply,Electrical
[industry] => Pumps & Motors,Electronic Systems,Electrical Supply,Electrical
[4] => Pumps & Motors
[5] => Electronic Systems
[6] => Electrical Supply
[7] => Electrical
)这就是我想要实现的:
Array
(
[0] => 3350
[1] => Williamson New England Electric
[2] => bob@jojozzz.go
[4] => Pumps & Motors
[5] => Electronic Systems
[6] => Electrical Supply
[7] => Electrical
)发布于 2011-12-31 19:29:09
正如我在我的评论中所说,如果您从MySQL数据库中获取数组,那么从一开始就将其作为数值数组可能更容易:
$row = mysql_fetch_row($result);然后,可以执行以下操作来拆分最后一列的值:
array_splice($row, -1, 1, explode(',', end($row)));发布于 2011-12-31 19:23:30
请参阅Felix的注释,了解如何在源代码中将数组转换为正确的格式。如果这是不可能的,这将会起到作用;
$array = Array(
'0' => 3350,
'id' => 3350,
'1' => 'Williamson New England Electric',
'company' => 'Williamson New England Electric',
'2' => 'bob@jojozzz.go',
'email' => 'bob@jojozzz.go',
'3' => 'Pumps & Motors,Electronic Systems,Electrical Supply,Electrical ',
'industry' => 'Pumps & Motors,Electronic Systems,Electrical Supply,Electrical ',
'4' => 'Pumps & Motors',
'5' => 'Electronic Systems',
'6' => 'Electrical Supply',
'7' => 'Electrical'
);
$outputArray = array_values( $array );
$uniqueArray = array_unique( $outputArray );
var_dump( $uniqueArray );发布于 2011-12-31 19:30:26
不能保证任何关于性能的东西,但您可以使用is_numeric来确保(#1)只有数字索引,并使用array_unique来确保(#2)没有重复:
$b = filterNonNumericKeysInArray($a);
$b = array_unique($b);
function filterNonNumericKeysInArray($arr) {
$finalArr = Array();
foreach ($arr as $key => $val) {
if (!is_numeric($key)) { continue; }
$finalArr[$key] = $val;
}
return $finalArr;
}https://stackoverflow.com/questions/8687708
复制相似问题