【问题标题】:Array mapping to replace certain parts阵列映射以替换某些部分
【发布时间】:2016-11-24 22:01:39
【问题描述】:

好吧,我得到了一个相当大的数据数组,现在除了 1 件事之外一切都很好,我想用空格替换数组中的所有点(例如,“Element.ID.Name”将变为“Element ID Name”现在我必须为此使用array_map,我怎么能做到这一点?我试过了

$filtered = array_map(array($this, 'clearDots'),$unfiltered); //calls the $this->clearDots 

但我完全不确定要将什么代码放入 clearDots 函数中......

private function clearDots($arr) {

        }

编辑:我试着用

str_replace("."," ",$variable);

但这只是替换数组中的所有文本而不是替换点

编辑 2: 这是它未经过滤的部分

$unfiltered[] = $row['row_name'];

这就是我将东西推入该数组的方式

这是完整的代码

public function getAll() {
            $sql = $this->conn();

            $result = $sql->query("SELECT row_name FROM tab");

            if($result->num_rows >= 1) {
                while($row = $result->fetch_assoc()) {
                    $unfiltered[] = $row['row_name'];
                }
            }

            $filtered = array_map(array($this, 'clearDots'),$unfiltered);

            print json_encode($filtered);
        }

        private function clearDots($variable) {
            str_replace("."," ",$variable);
        }

【问题讨论】:

    标签: php arrays oop


    【解决方案1】:

    我不确定您的整体代码出了什么问题,但您尝试的是正确的。

       $str = 'Element.ID.Name';
       echo str_replace(".", ' ', $str)."\n";
    

    编辑

    如果您解决了在回调中没有返回的问题,是否有任何问题得到缓解?

        private function clearDots($variable) {
    
            // need to return something here
            return str_replace("."," ",$variable);
        }
    

    【讨论】:

    • 问题是,我正在使用 array_push 从一些 MySQL 查询中推送其中的元素。现在的问题是,我只是将字段名称推入其中。当我打印它时,我会得到“RowName.RowName.RowName”(当然那些是实际的行名),但现在我试图减少这些点,但由于某种原因我不能这样做。
    • $unfiltered 中有什么,您希望 $filtered 中有什么?
    • $unflitered 基本上是它的原始部分,只是推入数组 $unfiltered[] = $row['row_name'];并且 $filtered 应该是相同的,只是没有数组之间的半列,只是每个元素之间有一个空格。
    • die('
      '.print_r($unfiltered, 1));并将输出的第一个或两个元素放在您编辑的问题中。
    • "
      row 1" 这就是我从中得到的。它的正确输出
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-31
    • 2018-04-08
    • 1970-01-01
    • 2016-06-10
    • 2021-01-14
    • 1970-01-01
    相关资源
    最近更新 更多