www.webdeveloper.com
Results 1 to 8 of 8

Thread: array print out

  1. #1
    Join Date
    Feb 2017
    Posts
    43

    array print out

    Hi,
    I have 4 different arrays and I have one function that will read the array and it should display the values of an array. For some reason it only display 1st value of the element in my echo.
    here is the code of arrays :
    PHP Code:
    $a1 = array('Author 1');
    $a2 = array('Author 1''Author 2');
    $a3 = array('Author 1''Author 2''Author 3');
    $a4 = array('Author 1''Author 2''Author 3','Author 4');

    $content .= list_authors($a1);
    $content .= list_authors($a2);
    $content .= list_authors($a3);
    $content .= list_authors($a4); 
    The content I'm calling out on index page

    here is the function :
    PHP Code:
    function list_authors($authors){    
            if( 
    count($authors) === ){
                return 
    '<p>' $author '</p>' ;
            }elseif( 
    count($authors) === ){
                    foreach(
    $authors as $author){
                        return 
    '<p>' $author ' and ' $author '</p>' ;
                    }
            }elseif(
    count($authors) === 3) {
                foreach(
    $authors as $author){
                    return 
    '<p>' $author .  ', ' $author ' and ' $author '</p>' ;
                }
            }else{
                foreach(
    $authors as $author){
                    return 
    '<p>' $author ', ' $author .  ', ' $author ' and ' $author '</p>' ;
                }
            }

    This is the outcome :

    Author 1

    Author 1 and Author 1

    Author 1, Author 1 and Author 1

    Author 1, Author 1, Author 1 and Author 1




    on line 2 it should be author 1 and 2 on line 3 author 1, author 2 and author 3 ..... and so on.

  2. #2
    Join Date
    Jul 2013
    Location
    Voorheesville NY USA
    Posts
    1,904
    Haven't done much reading on how to use PHP many, many features, have you?

    The foreach construct takes an array and 'walks' you through it, assigning the current value to a singular variable. In the loop that the foreach encompasses that variable can be used where you need to display the current array value.

    In order to print multiple values of an array you need to make use of the loop, ie, the foreach. So - this mean you cannot try and reference all the items during a single pass as you are doing.

    Try
    PHP Code:
    $first true;
    foreach (
    $array as $value)
    {
       if (!
    $first)
          echo 
    ' and ';
       
    $first false;
       echo 
    $value;

    On the other hand you could use the implode() function just as easily
    PHP Code:
    $str implode('and',$array);
    echo 
    $str

    Manuals are your friend.
    JG
    PS - If you're posting here you should be using:

    error_reporting(E_ALL);
    ini_set('display_errors', '1');


    at the top of ALL php code while you develop it!

  3. #3
    Join Date
    Feb 2017
    Posts
    43
    Quote Originally Posted by ginerjm View Post
    Haven't done much reading on how to use PHP many, many features, have you?

    The foreach construct takes an array and 'walks' you through it, assigning the current value to a singular variable. In the loop that the foreach encompasses that variable can be used where you need to display the current array value.

    In order to print multiple values of an array you need to make use of the loop, ie, the foreach. So - this mean you cannot try and reference all the items during a single pass as you are doing.

    .
    thank you for the lecture but you havent understand the problem at all. In your code what you have provide it will always separete those author with " and ". If you look at the output of my only last two can be separate with an " and " and the rest has to be separate by comma.
    But i will look at many features and read something if that will make you happy.

    thanks.

  4. #4
    Join Date
    Jul 2013
    Location
    Voorheesville NY USA
    Posts
    1,904
    Point taken.

    I gave you most of the solution by getting the values to be output properly. You figure out how to structure the final 'sentence'.
    JG
    PS - If you're posting here you should be using:

    error_reporting(E_ALL);
    ini_set('display_errors', '1');


    at the top of ALL php code while you develop it!

  5. #5
    Join Date
    Jul 2013
    Location
    Voorheesville NY USA
    Posts
    1,904
    Oh, here.
    PHP Code:
    function list_authors($authors)
    {
        
    $size count($authors);
        
    $cnt 1;
        
    $str '';
        foreach (
    $authors as $value)
        {
            if (
    $cnt 1)
                if (
    $cnt == $size)
                    
    $str .= ' and ';
                else
                    
    $str .= ', ';
            
    $cnt++;
            
    $str .= $value;
        }
        return 
    $str;

    JG
    PS - If you're posting here you should be using:

    error_reporting(E_ALL);
    ini_set('display_errors', '1');


    at the top of ALL php code while you develop it!

  6. #6
    Join Date
    Feb 2017
    Posts
    43
    Thanks for your help.

  7. #7
    Join Date
    Aug 2004
    Location
    Ankh-Morpork
    Posts
    22,335
    For extra credit, figure out how this works.

    PHP Code:
    function list_authors(Array $authors)
    {
      return(
    preg_replace('/,(?=[^,]*$)/'' and'implode(', '$authors)));
    }

    $authors = array('Zelazny''Heinlein''Asimov''Clark');
    echo 
    list_authors($authors); 
    Output:
    Code:
    Zelazny, Heinlein, Asimov and Clark
    _
    "Well done....Consciousness to sarcasm in five seconds!" ~ Terry Pratchett, Night Watch

    How to Ask Questions the Smart Way (not affiliated with this site, but well worth reading)

    My Blog
    cwrBlog: simple, no-database PHP blogging framework

  8. #8
    Join Date
    Feb 2017
    Posts
    43

    resolved

    Quote Originally Posted by NogDog View Post
    For extra credit, figure out how this works.

    _

    Wow NogDog this is very simple and only one line of code and it does exactly the same thing. This logic of yours is so great. Whish I could have the same. You must be programming for too long

    thanks

    I'm newbie in programming just started actually. Do you have any advice how to become a good programmer like yourself?

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center

"

"

X vBulletin 4.2.2 Debug Information

  • Page Generation 0.14891 seconds
  • Memory Usage 2,944KB
  • Queries Executed 13 (?)
More Information
Template Usage (35):
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_global_above_footer
  • (1)ad_global_below_navbar
  • (1)ad_global_header1
  • (1)ad_global_header2
  • (1)ad_navbar_below
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)ad_thread_first_post_content
  • (1)ad_thread_last_post_content
  • (1)bbcode_code
  • (6)bbcode_php
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)headinclude_bottom
  • (8)memberaction_dropdown
  • (1)navbar
  • (4)navbar_link
  • (1)navbar_moderation
  • (1)navbar_noticebit
  • (1)navbar_tabs
  • (2)option
  • (8)postbit
  • (8)postbit_onlinestatus
  • (8)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available (6):
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files (26):
  • ./showthread.php
  • ./global.php
  • ./includes/class_bootstrap.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/functions_navigation.php
  • ./includes/class_friendly_url.php
  • ./includes/class_hook.php
  • ./includes/class_bootstrap_framework.php
  • ./vb/vb.php
  • ./vb/phrase.php
  • ./includes/functions_facebook.php
  • ./includes/functions_calendar.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_notice.php
  • ./packages/vbattach/attach.php
  • ./vb/types.php
  • ./vb/cache.php
  • ./vb/cache/db.php
  • ./vb/cache/observer/db.php
  • ./vb/cache/observer.php 

Hooks Called (70):
  • init_startup
  • friendlyurl_resolve_class
  • init_startup_session_setup_start
  • database_pre_fetch_array
  • database_post_fetch_array
  • init_startup_session_setup_complete
  • global_bootstrap_init_start
  • global_bootstrap_init_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • load_show_variables
  • load_forum_show_variables
  • global_state_check
  • global_bootstrap_complete
  • global_start
  • style_fetch
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • strip_bbcode
  • friendlyurl_clean_fragment
  • friendlyurl_geturl
  • forumjump
  • cache_templates
  • cache_templates_process
  • template_register_var
  • template_render_output
  • fetch_template_start
  • fetch_template_complete
  • parse_templates
  • fetch_musername
  • notices_check_start
  • notices_noticebit
  • process_templates_complete
  • friendlyurl_redirect_canonical
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • memberaction_dropdown
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • build_navigation_data
  • build_navigation_array
  • check_navigation_permission
  • process_navigation_links_start
  • process_navigation_links_complete
  • set_navigation_menu_element
  • build_navigation_menudata
  • build_navigation_listdata
  • build_navigation_list
  • set_navigation_tab_main
  • set_navigation_tab_fallback
  • navigation_tab_complete
  • fb_like_button
  • showthread_complete
  • page_templates