如果我有以下数组:
Array
(
[0] => JHN.1.1|Tun fara farawa akwai Kalma, Kalman kuwa yana nan tare da Allah, Kalman kuwa Allah ne.
[1] => JHN.1.2|Yana nan tare da Allah tun fara farawa.
.
.
.
[25] => JHN.1.20|Bai yi mūsu ba, amma ya shaida a fili cewa, “Ba ni ne Kiristi ba.”
-> [26] => JHN.1.21|Sai suka tambaye shi suka ce, “To, wane ne kai? Kai ne Eliya?”
-> [27] => JHN.1.21|Ya ce, “Aʼa, ni ba shi ba ne.”
-> [28] => JHN.1.21|“Kai ne Annabin nan?”
-> [29] => JHN.1.21|Ya amsa ya ce, “Aʼa.”
[30] => JHN.1.22|A ƙarshe suka ce, “Wane ne kai? Ka ba mu amsa don mu mayar wa waɗanda suka aike mu. Me kake ce da kanka?”
我想成为这个:
Array
(
[0] => JHN.1.1|Tun fara farawa akwai Kalma, Kalman kuwa yana nan tare da Allah, Kalman kuwa Allah ne.
[1] => JHN.1.2|Yana nan tare da Allah tun fara farawa.
.
.
.
[25] => JHN.1.20|Bai yi mūsu ba, amma ya shaida a fili cewa, “Ba ni ne Kiristi ba.”
-> [26] => JHN.1.21|Sai suka tambaye shi suka ce, “To, wane ne kai? Kai ne Eliya?” Ya ce, “Aʼa, ni ba shi ba ne.” “Kai ne Annabin nan?” Ya amsa ya ce, “Aʼa.”
[27] => JHN.1.22|A ƙarshe suka ce, “Wane ne kai? Ka ba mu amsa don mu mayar wa waɗanda suka aike mu. Me kake ce da kanka?”
将经文与多个片段连接起来的有效方法是什么?
答案 0 :(得分:1)
循环遍历数组并构建一个键入JHN的字典。
$array = [
"JHN.1.1|Tun fara farawa akwai Kalma, Kalman kuwa yana nan tare da Allah, Kalman kuwa Allah ne.",
"JHN.1.2|Yana nan tare da Allah tun fara farawa.",
"JHN.1.20|Bai yi mūsu ba, amma ya shaida a fili cewa, “Ba ni ne Kiristi ba.”",
"JHN.1.21|Sai suka tambaye shi suka ce, “To, wane ne kai? Kai ne Eliya?”",
"JHN.1.21|Ya ce, “Aʼa, ni ba shi ba ne.”",
"JHN.1.21|“Kai ne Annabin nan?”",
"JHN.1.21|Ya amsa ya ce, “Aʼa.”",
"JHN.1.22|A ƙarshe suka ce, “Wane ne kai? Ka ba mu amsa don mu mayar wa waɗanda suka aike mu. Me kake ce da kanka?”"
];
$dict = [];
foreach ($array as $str) {
// split string e.g. $jhn = JHN.1.1, $value = Tun fara...
list($jhn, $value) = explode('|', $str);
// add key to dictionary if it does not exist
if (!isset($dict[$jhn])) {
$dict[$jhn] = [];
}
// add value
$dict[$jhn][] = $value;
}
现在只需使用字典重建数组。
$result = [];
foreach ($dict as $jhn => $values) {
$result[] = $jhn . '|' . implode(' ', $values);
}
注意:如果您有多个|,则会失败在每个字符串中。如果是这样,那么您将需要使用正则表达式或其他东西来分割字符串。