创建一个包含数组中所有不同字符的输出数组

时间:2015-04-08 13:36:46

标签: php arrays

这是我的第一个问题,请耐心等待!

我正在努力学习PHP并遇到一些我试图解决的问题。我没有以前的PHP经验,因此将这个问题的解决方案放在一起非常困难。

以下是问题: $ person_array = array(' Leanna',' derek',' Lisa',' John',' Lancelot', ' Michael',' Norman',' Lawrence of Arabia');

  • 创建一个输出数组,其中包含上面数组中包含的字符串中的所有不同字符(大写和小写)。仅使用str_split函数和任何Array函数来执行此操作。

这是我思考的内容,它显然无法运作,我不知道该怎么做才能让它发挥作用:

$result = "";

foreach($person_array as $name){ 
    $char = str_split($name)
    foreach($char as $eval){
        if($result === $eval){
            return "";
        }
        else{
            $result = $eval;
        }
    }
}

print $result;

3 个答案:

答案 0 :(得分:1)

我建议加入数组中的所有元素并从那里开始。代码看起来会更好,只需要少一个周期,但性能应该类似。

$all_characters = implode('', $person_array);
$unique_characters = [];

foreach($all_characters as $char) {
  if(!in_array($char, $unique_characters)) {
    $unique_characters[] = $char;
  }
}

答案 1 :(得分:0)

您可以遍历数组并通过字符串作为数组,创建一个新数组并使用array_keys()获取密钥来查看; - )

<?php

$person_array = array('Leanna', 'derek', 'Lisa', 'John', 'Lancelot', 'Michael', 'Norman', 'Lawrence of Arabia');
$newArray = array();

foreach($person_array as $values) {
    for($i = 0; $i < strlen($values); $i++) {
        $newArray[$values[$i]] = '';
    }
}

print_r(array_keys($newArray));

?>

输出:

Array
(
    [0] => L
    [1] => e
    [2] => a
    [3] => n
    [4] => d
    [5] => r
    [6] => k
    [7] => i
    [8] => s
    [9] => J
    [10] => o
    [11] => h
    [12] => c
    [13] => l
    [14] => t
    [15] => M
    [16] => N
    [17] => m
    [18] => w
    [19] =>  
    [20] => f
    [21] => A
    [22] => b
)

答案 2 :(得分:-1)

您可以使用array_unique函数http://in3.php.net/manual/en/function.array-unique.php

此处还有更正后的代码:

$result = array();

foreach($person_array as $name){ 
    if( !in_array($name,$result) )
      $result[] = $name;
}

print ($result);

OR

$result = array_unique($person_array);