我正在尝试解决如何清理我的数组,我的输出应该是:
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
)
答案 0 :(得分:2)
请参阅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 );
答案 1 :(得分:2)
正如我在评论中所说,如果从MySQL数据库中获取数据,那么从一开始就可以更容易地将数组作为数值数组:
$row = mysql_fetch_row($result);
然后您可以执行以下操作来拆分最后一列的值:
array_splice($row, -1, 1, explode(',', end($row)));
答案 2 :(得分:0)
不能保证性能,但你可以使用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;
}