douqu2481 2014-08-26 15:28
浏览 140

如何将数组中的两个变量保存为键和值[PHP]

I'm currently writing a script that searches for .md files and extracts a string out of it but I'm running into problems concerning saving this string in an array.

Here is the code I'm using:

$flags = \FilesystemIterator::SKIP_DOTS;
$iterator = new \RecursiveDirectoryIterator($userContent, $flags);
$iterator = new \RecursiveIteratorIterator($iterator, \RecursiveIteratorIterator::SELF_FIRST);

foreach ($iterator as $v) {

    $checkFiles = strpos($v, ".md");
    $url = array();

    if (!$checkFiles == '') {

        $mdFile = $v;
        $mdContent = file_get_contents($mdFile);
        $mdBreak = strpos($mdContent, "url: ");
        $mdContent = substr($mdContent, $mdBreak + 5);
        $mdBreak = strpos($mdContent, "
");
        $mdUrl = substr($mdContent, 0, $mdBreak);

        echo $mdUrl . ' => ' . $mdFile;
        echo '<br>';

        $url[$mdUrl] = $mdFile;

    }

}

The script succeeds in finding the .md files and also succeeds in finding the url: custom-url inside those documents.

Furthermore echo $mdUrl . ' => ' . $mdFile; returns custom-url => /content/default.md but apparently saving the url as key and the path as value does not work as print_r($url) returns Array ( [url-test ] => SplFileInfo Object ( [pathName:SplFileInfo:private] => /content/default.md [fileName:SplFileInfo:private] => default.md ) )

Could someone tell me what I did wrong and maybe help with fixing the script?


EDIT: Apparently it was a problem of the variable I tried to set as value.

As soon as I replaced $mdFile = $v with $mdFile = (string)$v; it worked.

  • 写回答

1条回答 默认 最新

  • dongqiao1158 2014-08-26 15:32
    关注

    You are initializing the $mdUrl array again and again on each loop. I guess you wanted to initialize it above the foreach loop.

    评论

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么