পাঠযোগ্য / শ্রেণিবদ্ধ বিন্যাসে একটি অ্যারে প্রদর্শন করুন


96

আমার অ্যারের জন্য ডেটা টানানোর কোড এখানে

<?php
    $link = mysqli_connect('localhost', 'root', '', 'mutli_page_form');

    $query = "SELECT * FROM wills_children WHERE will=73";

    $result = mysqli_query($link, $query) or die(mysqli_error($link));

    if ($result = mysqli_query($link, $query)) {

    /* fetch associative array */
    if($row = mysqli_fetch_assoc($result)) {
        $data = unserialize($row['children']);
    }

    /* free result set */
    mysqli_free_result($result);
    }
?>

যখন আমি মুদ্রণ_আর ($ ডেটা) ব্যবহার করি তখন তা পড়বে:

Array ( [0] => Array ( [0] => Natural Chlid 1 [1] => Natural Chlid 2 [2] => Natural Chlid 3 ) ) 

আমি এটি পড়তে চাই:

প্রাকৃতিক শিশু 1
প্রাকৃতিক শিশু 2
প্রাকৃতিক শিশু 3

উত্তর:


31

এটা চেষ্টা কর:

foreach($data[0] as $child) {
   echo $child . "\n";
}

জায়গায় print_r($data)


4
<?php foreach($data[0] as $child) { echo $child . "<br />"; }?> এটি দুর্দান্ত ধন্যবাদ ব্রায়ান!
জাভিয়েয়ার

58
<p>> <<< স্পষ্ট পছন্দ হলে কেন পৃথিবীতে এই নির্বাচিত উত্তর?
ক্যান্টসে

4
আপনার বহুমাত্রিক অ্যারে থাকলে এটি কাজ করবে না।
স্ক্রগ্ন

4
@ আলেসানা ইয়েপ, কিন্তু ওপিতে বহুমাত্রিক অ্যারে নেই। আমি মনে করি অন্যরা যেমন উত্তরটিতে মন্তব্য করেছে আপনি যেভাবে যেতে চান তা হ'ল <pre>print_r($data)</pre>। 5+ বছরের পুরানো উত্তরটিতে নতুন মন্তব্য দেখতে সর্বদা মজাদার! :)
ব্রায়ান ড্রিসকল

4
আহ, আমার ক্ষেত্রে আমি একটি বহুমাত্রিক অ্যারে নিয়ে কাজ করছিলাম। আমি এর আগে কোনও মন্তব্য রাখিনি যখন আমি দেখলাম যে অন্য কেউ এটিকে নির্দেশ করেননি আমি ভেবেছিলাম এটি একটি নিখুঁত সুযোগ হতে পারে!
স্কর্ন করুন

429

পরিবর্তে

print_r($data);

চেষ্টা করুন

print "<pre>";
print_r($data);
print "</pre>";

4
এছাড়া মূল্য উল্লেখ করে আপনি পাস করতে পারেন trueযেমন ডেটা পেতে print_r দ্বিতীয় প্যারামিটার হিসাবে string। এখন আপনি return '<pre>'.print_r(User::all(), true);নিজের রুট ফাইল থেকে পারেন can
DutGRIFF

আমি এই উত্তরটিও পছন্দ করি তবে ওপি কেবল স্ট্রিংগুলি মুদ্রণ করতে চেয়েছিল এবং অ্যারে সূচকগুলি (এটি দেখে মনে হয় না) not এবং শুধুমাত্র 1-মাত্রিক ডেটা। সমাধানটি চালিয়ে যাওয়ার আগে আমি কেবলমাত্র ডেটা রেকর্ডসেট পরীক্ষা করার জন্য এটি করি, সুতরাং এই সমাধানটি এর মতো স্টাফের জন্য আরও ভালভাবে কাজ করে।
আইওপেনার


47

আমার একটি প্রাথমিক কাজ রয়েছে:

function prettyPrint($a) {
    echo "<pre>";
    print_r($a);
    echo "</pre>";
}

prettyPrint($data);

সম্পাদনা: অনুকূলিত ফাংশন

function prettyPrint($a) {
    echo '<pre>'.print_r($a,1).'</pre>';
}

সম্পাদনা: কাস্টম ট্যাগ সমর্থন সহ মোয়ার অপ্টিমাইজড ফাংশন

function prettyPrint($a, $t='pre') {echo "<$t>".print_r($a,1)."</$t>";}

7
এখন অবধি সেরা উত্তর, এবং আপনি এটি আরও echo '<pre>',print_r($a,1),'</pre>';
কমিয়ে আনতে

15

আমি মনে করি var_export(), ভুলে যাওয়া ভাইয়ের var_dump()সেরা আউটপুট রয়েছে - এটি আরও কমপ্যাক্ট:

echo "<pre>";
var_export($menue);
echo "</pre>";

যাইহোক: এটি ব্যবহার করা সর্বদাই প্রয়োজন হয় না <pre>। আপনি যখন নিজের ওয়েবপৃষ্ঠার উত্স কোডটিতে একবার নজর রাখেন var_dump()এবং var_export()ইতিমধ্যে ফর্ম্যাট করা হয়।


আমি var_export সম্পর্কে একমত, তবে আমাকে এটি <pre> </pre> এর সাথে একত্রিত করতে হয়েছিল কারণ এটি সঠিক ফর্ম্যাটে ফলাফল আউটপুট করে না।
ছায়া কুপার

4
@ ছায়া-কুপার এটি প্রদর্শিত পৃষ্ঠায় সঠিকভাবে ফর্ম্যাট করা যায় নি, তবে আমার ধারণা হেক্সডাস মানে এটি " আপনার ওয়েব পৃষ্ঠার উত্স কোডে " -> মেনুতে "উত্স দেখুন", অথবা ফায়ারফক্সে
সিটিআরএল

@fpierrat হ্যাঁ, এটি হ'ল আমার অর্থ এটা স্পষ্ট করার জন্য ধন্যবাদ।
হেক্সডাস

4
এই পদ্ধতির একটি সুবিধা হ'ল আউটপুটটি বৈধ পিএইচপি হিসাবে ফর্ম্যাট করা হয়েছে, তাই আপনি যদি চান তবে এটি ঠিক আপনার কোডে পেস্ট করতে পারবেন।
শিন দ্য

13

যদি কাউকে এত শীতল অ্যারে দেখার প্রয়োজন হয়;) এই পদ্ধতিটি ব্যবহার করুন .. এটি আপনার ব্রাউজার কনসোলে মুদ্রণ করবে

function console($obj)
{
    $js = json_encode($obj);
    print_r('<script>console.log('.$js.')</script>');
}

আপনি এই মত ব্যবহার করতে পারেন ..

console($myObject);

আউটপুট এরকম হবে .. এতো সুন্দর !!

এখানে চিত্র বর্ণনা লিখুন


5
foreach($array as $v) echo $v, PHP_EOL;

আপডেট : আরও পরিশীলিত সমাধানটি হ'ল :

 $test = [
    'key1' => 'val1',
    'key2' => 'val2',
    'key3' => [
        'subkey1' => 'subval1',
        'subkey2' => 'subval2',
        'subkey3' => [
            'subsubkey1' => 'subsubval1',
            'subsubkey2' => 'subsubval2',
        ],
    ],
];
function printArray($arr, $pad = 0, $padStr = "\t") {
    $outerPad = $pad;
    $innerPad = $pad + 1;
    $out = '[' . PHP_EOL;
    foreach ($arr as $k => $v) {
        if (is_array($v)) {
            $out .= str_repeat($padStr, $innerPad) . $k . ' => ' . printArray($v, $innerPad) . PHP_EOL;
        } else {
            $out .= str_repeat($padStr, $innerPad) . $k . ' => ' . $v;
            $out .= PHP_EOL;
        }
    }
    $out .= str_repeat($padStr, $outerPad) . ']';
    return $out;
}

echo printArray($test);

এটি মুদ্রণ করে:

    [
        key1 => val1
        key2 => val2
        key3 => [
            subkey1 => subval1
            subkey2 => subval2
            subkey3 => [
                subsubkey1 => subsubval1
                subsubkey2 => subsubval2
            ]
        ]
    ]

<? পিএইচপি ফোরচ ($ v হিসাবে $ ডেটা) প্রতিধ্বনি $ v, PHP_EOL; ?> "অ্যারে" প্রদর্শন করে
জ্যাভিয়ার

4
ঠিক আছে, তারপরে আপনার দ্বিগুণ পূর্বাভাস ($ অ্যারে হিসাবে কাঁচা) ফোরচ ($ v হিসাবে ray অ্যারে) প্রতিধ্বনি $ v, পিএইচপি_ইওএল পুনরাবৃত্তি করা উচিত;
ইয়ারনিয়াস

3

print_r()বেশিরভাগ ডিবাগিংয়ের জন্য। আপনি যদি সেটিকে এই ফর্ম্যাটে মুদ্রণ করতে চান তবে অ্যারের মাধ্যমে লুপ করুন এবং উপাদানগুলি মুদ্রণ করুন।

foreach($data as $d){
  foreach($d as $v){
    echo $v."\n";
  }
}

প্রতিক্রিয়াটির জন্য ধন্যবাদ তবে এটি "অ্যারে" হিসাবে ডেটা প্রিন্ট করে
জাভিয়েয়ার

@ জাভিয়ার: আপনি কি আমার উত্তরে আপডেট কোডটি ব্যবহার করে দেখেছেন? আপনার উভয় অ্যারে লুপ করতে হবে। $dataঅ্যারে একটি অ্যারে।
রকেট হাজমত

এবং আপনার কোডটি নিখুঁতভাবে কাজ করেছে আমি সবেমাত্র / এনকে একটি <br />
জাভিয়ের


2

আমি ধরে নিই যে কেউ ডিবাগিংয়ের জন্য মুদ্রণ_আর ব্যবহার করে। আমি তখন কিন্টের মতো লাইব্রেরি ব্যবহার করার পরামর্শ দেব । এটি পঠনযোগ্য ফর্ম্যাটে বড় অ্যারে প্রদর্শন করতে দেয়:

$data = [['Natural Child 1', 'Natural Child 2', 'Natural Child 3']];
Kint::dump($data, $_SERVER);

এখানে চিত্র বর্ণনা লিখুন


4
এটি কোনও ভ্যানিলা পিএইচপি সমাধান নয়, তবে অবশ্যই কার্যকর এবং পঠনযোগ্য আউটপুট সরবরাহ করে!
শিন দ্য

1
<?php 
//Make an array readable as string
function array_read($array, $seperator = ', ', $ending = ' and '){
      $opt = count($array);
      return $opt > 1 ? implode($seperator,array_slice($array,0,$opt-1)).$ending.end($array) : $array[0];
}
?>

আমি আমার দর্শকদের কাছে একটি দুর্দান্ত মুদ্রিত অ্যারে প্রদর্শন করতে এটি ব্যবহার করি


1

Var_dump ফাংশনটি ব্যবহার করে পিএইচপি-তে ফরম্যাট করা অ্যারে প্রিন্ট করার খুব দুর্দান্ত উপায়।

 $a = array(1, 2, array("a", "b", "c"));
 var_dump($a);

1

আমি কীগুলি এবং তাদের মানগুলি পাওয়ার জন্য এটি ব্যবহার করি $ qw = mysqli_query ($ সংযোগ, $ কোয়েরি);

while ( $ou = mysqli_fetch_array($qw) )
{
    foreach ($ou as $key => $value) 
    {
            echo $key." - ".$value."";
    }
    echo "<br/>";
}

1

আমি কেবল অনলাইন সরঞ্জামগুলি ব্যবহার করব।

  • প্রথমে প্রিন্ট_আর করুন (আপনার_আরে)

  • দ্বিতীয় ফলাফলটি অনুলিপি করুন এবং http://phillihp.com/toolz/php-array-beautifier/ এ পেস্ট করুন


আমি এটিকে আরও শক্তিশালী হতে আপডেট করেছি, লিঙ্কটির জন্য ধন্যবাদ।
ফিলিহপ

1

দ্রুত এবং সহজেই JSON উপস্থাপনের জন্য ওয়ান-লাইনার:

    echo json_encode($data, JSON_PRETTY_PRINT);

যদি ইতিমধ্যে প্রকল্পের জন্য সুরকার ব্যবহার করে থাকেন তবে সিমফনি / ইয়ামল এবং:

    echo Yaml::dump($data);


0

একক অ্যারেগুলির জন্য আপনি ইমপ্লোড ব্যবহার করতে পারেন, এটি মুদ্রণের জন্য একটি পরিষ্কার ফলাফল রয়েছে।

<?php
$msg = array('msg1','msg2','msg3');
echo implode('<br />',$msg);
echo '<br />----------------------<br/>';

echo nl2br(implode("\n",$msg));
echo '<br />----------------------<br/>';
?>

বহুমাত্রিক অ্যারেগুলির জন্য আপনাকে কিছু ধরণের লুপের সাথে একত্রিত করতে হবে।

<?php
$msgs[] = $msg;
$msgs[] = $msg;
$msgs[] = $msg;
$msgs[] = $msg;
$msgs[] = $msg;
foreach($msgs as $msg) {
    echo implode('<br />',$msg);
    echo '<br />----------------------<br/>';
}
?>

0

এটি print_r()কনসোল অ্যাপ্লিকেশনগুলিতে আউটপুট বিন্যাস উন্নত করার চেষ্টা করে :

function pretty_printr($array) {

  $string = print_r($array, TRUE);

  foreach (preg_split("/((\r?\n)|(\r\n?))/", $string) as $line) {

    $trimmed_line = trim($line);

    // Skip useless lines.
    if (!$trimmed_line || $trimmed_line === '(' || $trimmed_line === ')' || $trimmed_line === 'Array') {
      continue;
    }

    // Improve lines ending with empty values.
    if (substr_compare($trimmed_line, '=>', -2) === 0) {
      $line .=  "''";
    }

    print $line . PHP_EOL;
  }
}

উদাহরণ:

[activity_score] => 0
[allow_organisation_contact] => 1
[cover_media] => Array
        [image] => Array
                [url] => ''
        [video] => Array
                [url] => ''
                [oembed_html] => ''
        [thumb] => Array
                [url] => ''
[created_at] => 2019-06-25T09:50:22+02:00
[description] => example description
[state] => published
[fundraiser_type] => anniversary
[end_date] => 2019-09-25
[event] => Array
[goal] => Array
        [cents] => 40000
        [currency] => EUR
[id] => 37798
[your_reference] => ''
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.