看起来很简单,但是我很想在此上浪费很多时间,但没有成功...
如果我有一个字符串:
$str = "She sells seashells"
所以我把每个单词都变成一个数组元素
$array = explode(" ", $str);
我需要的是,每个单词都接收祖先元素(如果有的话),然后接收下一个元素……
JSON格式的示例结果(更易于显示)
"{"She":["sells","seashells"],"sells":["She","seashells"],"seashells":["She","sells"]}"
有人可以帮忙吗?
谢谢!
答案 0 :(得分:5)
确实,您可以为每个键(不包括该键)复制一个源数组:
$str = "She sells seashells";
$array = explode(" ", $str);
$res = [];
for($i = 0; $i < count($array); $i++) {
$res[$array[$i]] = $array;
unset($res[$array[$i]][$i]);
}
print_r($res);
答案 1 :(得分:3)
<?php
$str = "She sells seashells";
$arr = explode(" ",$str);
$length = count($arr);
$result = [];
for($i = 0;$i < $length;++$i){
$result[$arr[$i]] = [];
foreach ($arr as $each_val) {
if($each_val === $arr[$i]) continue;
$result[$arr[$i]][] = $each_val;
}
}
echo json_encode($result);
输出:
{"She":["sells","seashells"],"sells":["She","seashells"],"seashells":["She","sells"]}
result
数组,并将for循环中的当前迭代值作为它的键。result
数组键中添加该值。