我有兩個字符串。 一個是「Aa ee Gg
」,另一個是「Aa Ee
」。兩者都是毛色的遺傳學。在PHP中重組來自兩個字符串的字母
我想從兩者中產生一個新的組合。新字符串需要有每個字符串的「字母之一」。
例如A
和A
,E
和e
,G
和( - )
我試圖把數組中的字符串,然後使用這些做出新的字符串。
我有兩個字符串。 一個是「Aa ee Gg
」,另一個是「Aa Ee
」。兩者都是毛色的遺傳學。在PHP中重組來自兩個字符串的字母
我想從兩者中產生一個新的組合。新字符串需要有每個字符串的「字母之一」。
例如A
和A
,E
和e
,G
和( - )
我試圖把數組中的字符串,然後使用這些做出新的字符串。
這可能是一個略顯晦澀的解決方案,但它給你你正在尋找的結果:
$first = 'Aa ee Gg';
$second = 'Aa Ee';
$tokens = array_map(function($a, $b) {
return ($a[0] ?: '-') . ($b[0] ?: '-');
}, explode(' ', $first), explode(' ', $second));
$string = implode(' ', $tokens);
var_dump($string);
這產生了:
string(8) "AA eE G-"
一個快速的解釋:
$first
和$second
開始,以及要合併的值。['Aa', 'ee', 'Gg']
和['Aa', 'Ee']
。array_map()
一個回調應用於$arr[0]
)取消引用字符串的兩個陣列的每個元素。這裏我們使用幾個shortcut ternary operators來返回當前字符串中的第一個字符,如果沒有字符存在,則返回' - '。array_map()
返回一個字符串數組,在這種情況下爲['AA', 'eE', 'Gg']
。implode()
數組到字符串"AA eE G-"
希望這有助於:)
謝謝!我不得不承認我的方式直接走向了錯誤的方向!這正是我可以使用:)謝謝! – Anja
沒問題!有趣的問題 - 我在這裏找到另一個解決方案:D –
告訴我要在代碼格式生成數組... – MaggsWeb
機管局EE千兆克節AA電氣工程師可以有很多解決方案在我的例子中,它將是 「AA Ee G-」,但它也可以是「ae Ee -g」,總是來自String1的一個「Letter」和來自String2的一個Letter。所以一個A和一個E以及一個G等...... – Anja
爲什麼'AA Ee G-'而不是'AA eE G''?後者似乎對我更有意義。 –