首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将字符串中的数组与第一个数组字(如array[0].'->'.array[1] )连接在一起

如何将字符串中的数组与第一个数组字(如array[0].'->'.array[1] )连接在一起
EN

Stack Overflow用户
提问于 2022-10-28 07:10:20
回答 3查看 77关注 0票数 0
代码语言:javascript
复制
$arr = ['Governance->Policies->Prescriptions->CAS Alerts',
        'Users->User Departments->Department Hierarchy',
        'Settings->Registrar->Finance',
        'Logs->Second Opinion Log'];

这是数组,我想把它转换成字符串,就像下面那样,字符串应该是一个,它只是在一个字符串中连接。

代码语言:javascript
复制
Governance->Policies
Governance->Prescriptions
Governance->CAS Alerts

Users->User Departments
Users->Department Hierarchy

Settings->Registrar
Settings->Finance

Logs->Second Opinion Log
代码语言:javascript
复制
$arr = ['Governance->Policies->Prescriptions->CAS Alerts',
        'Users->User Departments->Department Hierarchy',
        'Settings->Registrar->Finance',
        'Logs->Second Opinion Log'];
$temp = '';
for($i = 0; $i < count($arr); $i++){
    $arrVal = [];
    
    $arrVal = explode('->',$arr[$i]);
    if(count($arrVal) > 1){
        for($j=0; $j < count($arrVal); $j++){
            if($j == 0){
                $temp .= $arrVal[$j];
            }else{
                $temp .='->'.$arrVal[$j]."\n";
                if($j == count($arrVal) - 1){
                    $temp .= "\n";
                }else{
                    $temp .= substr($temp, 0, strpos($temp, "->"));
                }
            }
        }
    }
 } 
 echo $temp;
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-10-28 07:52:56

在这里,解决方案:

代码语言:javascript
复制
<?php
//This might help full
$arr = ['Governance->Policies->Prescriptions->CAS Alerts',
        'Users->User Departments->Department Hierarchy',
        'Settings->Registrar->Finance',
        'Logs->Second Opinion Log'];
        
$result="";
$newline="<br>";
foreach($arr as $data){
    $wordlist=explode('->',$data);
    $firstword=$wordlist[0];
    $temp='';
    foreach($wordlist  as $key=>$value){
      if($key > 0){
        $temp.=$firstword."->".$value.$newline;
      }
    }
    $temp.=$newline;
    $result.=$temp;
}
echo $result;
?>

Output :

代码语言:javascript
复制
Governance->Policies
Governance->Prescriptions
Governance->CAS Alerts

Users->User Departments
Users->Department Hierarchy

Settings->Registrar
Settings->Finance

Logs->Second Opinion Log
票数 0
EN

Stack Overflow用户

发布于 2022-10-29 14:06:48

当您迭代由箭头分隔的字符串数组时,爆炸其箭头上的每个元素,将第一个值从其余的元素中分离出来,然后从爆炸中迭代其余的元素,并将缓存的、第一个值和推入结果数组。

代码:(演示)

代码语言:javascript
复制
$result = [];
foreach ($arr as $string) {
    $parts = explode('->', $string);
    $parent = array_shift($parts);
    foreach ($parts as $child) {
        $result[] = "{$parent}->$child";
    }
}
var_export($result);
票数 1
EN

Stack Overflow用户

发布于 2022-10-28 08:05:00

代码语言:javascript
复制
$arr = ['Governance->Policies->Prescriptions->CAS Alerts',
        'Users->User Departments->Department Hierarchy',
        'Settings->Registrar->Finance',
        'Logs->Second Opinion Log'];

foreach ($arr as $path) {
  $path_elements = explode('->', $path);
  if (count($path_elements) > 1) {
    $path_head = $path_elements[0];
    $path_tail = array_slice($path_elements, 1);
    foreach ($path_tail as $path_item) {
      echo $path_head, '->', $path_item, "<br>";
    }
    echo "<br>";  
  }
}

演示:https://onlinephp.io/c/9eb2d

或使用JOIN()

代码语言:javascript
复制
$arr = ['Governance->Policies->Prescriptions->CAS Alerts',
        'Users->User Departments->Department Hierarchy',
        'Settings->Registrar->Finance',
        'Logs->Second Opinion Log'];

foreach ($arr as $path) {
  $path_elements = explode('->', $path);
  if (count($path_elements) > 1) {
    $path_head = $path_elements[0];
    $path_tail = array_slice($path_elements, 1);
    echo
      $path_head,
      '->',
      join('<br>'. $path_head.'->',$path_tail),
      '<br><br>';
  }
}

演示:https://onlinephp.io/c/c1826

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74231774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档