douan4106 2012-06-02 11:20
浏览 37
已采纳

组合array_push和array_flip

I'm storing words in an array. Every time I add new words from a form, it appends them to the existing array.

I'd like to make sure words are stored in the key of the array and not the value. I just use array_flip to do it the first time, but when I append new words they get stored as values.

I'm sure this is simple, but how can I make sure the array is always ordered to store words as keys?! Thanks in advance...

Here's my code: $_SESSION['words'] is the existing array of words and $_POST['additions'] is the new incoming words to be added:

if (isset($_POST['additions']) === true) {

    // do cleanup
    $additions = explode(",", $_POST['additions']); // create array from $_POST['additions']
    $additions = array_map('trim', $additions); // remove whitespace
    $additions = array_filter($additions); // remove blank array elements       
    $additions = preg_replace("/,(?![^,]*,)/",'',$additions); // remove stray characters

    foreach($additions as $key => $value) {     
        // append content to $_SESSION['words']  
        array_push($_SESSION['words'], $value);     
    }   

    // swap all the array values with the array keys
    $_SESSION['words'] = array_flip($_SESSION['words']);    

    // swap keys with values
    foreach($_SESSION['words'] as $key => $value) {         
        $key = $value;
        $value = "";
    }
  • 写回答

1条回答 默认 最新

  • dsh7551 2012-06-02 11:26
    关注

    Here you go:

    foreach($additions as $key => $value) {     
        // append content to $_SESSION['words']  
        $_SESSION['words'][$value]=count($_SESSION['words'])+1;     
    }   
    

    No need to flip around; replace the first foreach loop with this code, and remove everything after it.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 phython读取excel表格报错 ^7个 SyntaxError: invalid syntax 语句报错
  • ¥20 @microsoft/fetch-event-source 流式响应问题
  • ¥15 ogg dd trandata 报错
  • ¥15 高缺失率数据如何选择填充方式
  • ¥50 potsgresql15备份问题
  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?