Lanka Developers Community

    Lanka Developers

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Shop

    PHP Logic problem

    Back-End Development
    php
    3
    4
    1174
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • root
      root Linux Help last edited by root

      මම ගොඩක් උත්සහ කරා මේක විසදගන්න එත් බැරිඋන නිසයි Lankadevelopers එකේ දාන්න අදහස් කරේ .

      data array එකක් තියෙනවා (පල්ලෙහා මම දාන්නම්) මට ඕනේ මේ array එකේ _ (underscore ) එකෙන් දකුණු පැත්තේ තියෙන value එක key එක වෙලා වම් පැත්තේ තියෙන එක key එකේ values array එකක් විදියට තාම එන්න ඕනේ .

      <?php
      $permissions = ['create_user', 'edit_user', 'delete_user', 'create_post','edit_post', 'delete_post'];
      

      මම මේක හැදුවා එත් පොඩි අවුලක් තියෙනවා . key එක විදියට ගන්න values එක පේලියට අවොත් වැඩ කරනවා , එත් තැන මාරු වෙලා අවොත් වැඩ කරන්නේ නැ .
      ex :

      <?php
      $permissions = ['create_user', 'create_post','edit_post', 'delete_post', 'edit_user', 'delete_user'];
      

      මේ තියෙන්නේ මගේ code එක :

      <?php
      $permissions = ['create_user', 'edit_user', 'delete_user', 'create_post','edit_post', 'delete_post'];
      $permission_categories = [];
      $set = [];
              
      foreach ($permissions as $permission) {
         $name = explode("_", $permission);
      
          if (!array_key_exists($name[1], $permission_categories)) {
              $set = [];
              $permission_categories[$name[1]] = $name[0];
          }
      
          if (array_key_exists($name[1], $permission_categories)) {
               $set[] = [
                   $name[0]
               ];
               $permission_categories[$name[1]] = $set;
           }
      }
      print_r($permission_categories);
      exit();
      

      අන්තිමට එන්න ඕනේ output එක තමා :

      [
       'user' => ['create','edit', 'delete'],
       'post' => ['create','edit','delete']
      ]
      
      1 Reply Last reply Reply Quote 1
      • E
        Emalsha last edited by

        Hope this is what you expect.
        Happy coding .. :)

        <?php
        $permissions = ['create_user', 'create_post','edit_post', 'delete_post', 'edit_user', 'delete_user'];
        $permission_categories = [];
        $set = [];
                
        foreach ($permissions as $permission) {
           $name = explode("_", $permission);
           $key = $name[1];
           $value = $name[0];
        
            if (!array_key_exists($key, $permission_categories)) {
                $permission_categories[$key] = [$value];
            }else{
                 array_push($permission_categories[$key],$value);
                 
             }
        }
        print_r($permission_categories);
        exit();
        
        root 1 Reply Last reply Reply Quote 9
        • root
          root Linux Help @Emalsha last edited by

          @Emalsha Thank you very much, works as expected. thanks again.

          1 Reply Last reply Reply Quote 1
          • isuru mahesh perera
            isuru mahesh perera last edited by isuru mahesh perera

            <?php
            $permissions = ['create_user', 'create_post','edit_post', 'delete_post', 'edit_user', 'delete_user'];
            $permission_categories = [];
            
            foreach ($permissions as $value) {
                
                $name = explode("_", $value);
            
                # hasn't key
                if(!array_key_exists($name[1], $permission_categories)){
                    $permission_categories[$name[1]] = [];
                }
            
                $permission_categories[$name[1]][] = $name[0];
            }
            
            
            print_r($permission_categories);
            
            1 Reply Last reply Reply Quote 3
            • 1 / 1
            • First post
              Last post

            0
            Online

            3.7k
            Users

            1.3k
            Topics

            5.3k
            Posts

            • Privacy
            • Terms & Conditions
            • Donate

            © Copyrights and All right reserved Lanka Developers Community

            Powered by Axis Technologies (PVT) Ltd

            Made with in Sri Lanka

            | |