{"id":228222,"date":"2022-10-13T12:55:00","date_gmt":"2022-10-13T09:55:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=228222"},"modified":"2022-11-09T01:21:59","modified_gmt":"2022-11-08T22:21:59","slug":"massiivi-tuekk","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/massiivi-tuekk\/","title":{"rendered":"Massiivi t\u00fckk"},"content":{"rendered":"\n<p>Massiivit\u00fckki (<code>array_chunk<\/code>) kasutades saame massiivi h\u00f5lpsalt jagada mitmem\u00f5\u00f5tmeliseks massiiviks (massiivide massiiviks).<\/p>\n<p>Massiivi t\u00fckki funktsiooni saab kasutada massiivi v\u00e4iksemateks osadeks jagamiseks, v\u00f5ib-olla t\u00f6\u00f6tlemise h\u00f5lbustamiseks.<\/p>\n<h2>P\u00f5hiline n\u00e4ide<\/h2>\n<p>Eeldades, et seadistame massiivi alltoodud koodin\u00e4ite kohaselt (<code>$array<\/code>real 1), saame selle massiivi t\u00fckeldada uueks mitmem\u00f5\u00f5tmeliseks massiiviks, kasutades <code>array_chunk<\/code>real 9 olevat funktsiooni.<\/p>\n<p>Selle koodi k\u00e4ivitamine tooks real 15 tulemuseks mitmem\u00f5\u00f5tmelise massiivi.<\/p>\n<pre><code>$array = [\n    'Post 0', \n    'Post 1', \n    'Post 2', \n    'Post 3', \n    'Post 4', \n    'Post 5',\n];\n$chunked_array = array_chunk( $array, 2 );\nprint_r( $chunked_array ); \/\/ Output the new array.\n\n\/**\n * Output:\n *\n * Array\n * (*   [0] =&gt; Array\n * (*          [0] =&gt; Post 0\n *          [1] =&gt; Post 1\n *) *   [1] =&gt; Array\n * (*          [0] =&gt; Post 2\n *          [1] =&gt; Post 3\n *) *   [2] =&gt; Array\n * (*           [0] =&gt; Post 4\n *           [1] =&gt; Post 5\n *) *)\n **\/\n<\/code><\/pre>\n<h2>Koosseis<\/h2>\n<pre><code>$chunked_array = array_chunk( $array, $chunk, $preserve_keys );\n<\/code><\/pre>\n<p>Funktsioon <code>array_chunk<\/code>aktsepteerib kolme parameetrit, <code>$array<\/code>ja <code>$chunk<\/code>( <code>$preserve_keys<\/code>valikuline, vaikimisi false). Need on j\u00e4rgmised:<\/p>\n<ol>\n<li>Parameeter <code>$array<\/code>aktsepteerib massiivi ja on esialgne massiiv, mida soovime teisendada.<\/li>\n<li>Aktsepteerib t\u00e4isarvu ja <code>$chunk<\/code>on arv, mida kasutame <code>$array<\/code>selle v\u00e4\u00e4rtuse osadeks jagamiseks.<\/li>\n<li>Valikuline <code>$preserve_keys<\/code>parameeter aktsepteerib t\u00f5ev\u00e4\u00e4rtust ja s\u00e4ilitab massiivi v\u00f5tmed, kui <code>true<\/code>.<\/li>\n<\/ol>\n<h2>Funktsioonid ja konkreetsed n\u00e4ited<\/h2>\n<h3>S\u00e4ilitage v\u00f5tmed<\/h3>\n<p>Parameetrit uurides <code>$preserve_keys<\/code>alustab meie eelmine n\u00e4ide iga pesastatud massiivi indeksi 0-st. Kui aga l\u00e4heksime <code>true<\/code>sellesse parameetrisse, j\u00e4\u00e4ks esialgse massiivi esialgne indeks puutumata:<\/p>\n<pre><code>$array = [\n    'Post 0', \n    'Post 1', \n    'Post 2', \n    'Post 3', \n    'Post 4', \n    'Post 5',\n];\n$chunked_array = array_chunk( $array, 2, true );\nprint_r( $chunked_array ); \/\/ Output the new array.\n\n\/**\n * Output:\n *\n * Array\n * (*   [0] =&gt; Array\n * (*          [0] =&gt; Post 0\n *          [1] =&gt; Post 1\n *) *   [1] =&gt; Array\n * (*          [2] =&gt; Post 2\n *          [3] =&gt; Post 3\n *) *   [2] =&gt; Array\n * (*           [4] =&gt; Post 4\n *           [5] =&gt; Post 5\n *) *)\n **\/\n<\/code><\/pre>\n<p>V\u00e4ljundis on v\u00f5tmed n\u00fc\u00fcd j\u00e4rjestikused, nagu need oleksid algses massiivis (0, 1, 2, 3\u2026).<\/p>\n<h3>S\u00e4ilitage v\u00f5tmed, kui originaalmassiivil on nimega v\u00f5tmed<\/h3>\n<p>Kui meie algsel massiivil on nimelised v\u00f5tmed, saame v\u00f5tmed s\u00e4ilitada, et neid meie t\u00fckeldatud massiivis s\u00e4ilitada.<\/p>\n<p>J\u00e4rgmises n\u00e4ites on sellega natuke nalja. Oletame, et oleme kuidagi saanud massiivi, kus on segatud m\u00f5ned postituse ID-d ja postituste nimed.<\/p>\n<p>V\u00f5iksime kasutada <code>array_chunk<\/code>parameetrit <code>$preserve_keys<\/code>, <code>true<\/code>et jagada need \u00fcksikuteks postitusteks.<\/p>\n<pre><code>$array = [\n    'id_0'   =&gt; '10', \n    'name_0' =&gt; 'Post 1', \n    'id_1'   =&gt; '20', \n    'name_1' =&gt; 'Post 2', \n    'id_2'   =&gt; '30', \n    'name_2' =&gt; 'Post 3',\n];\n$chunked_array = array_chunk( $array, 2, true);\nprint_r( $chunked_array ); \n<\/code><\/pre>\n<p>Kui teil on selle massiiviga endiselt l\u00f5bus, kujutame ette, kuidas saaksime silmust l\u00e4bi vaadata <code>$chunked_array<\/code>ja v\u00e4ljastada ainult nimed.<\/p>\n<pre><code>foreach( $chunked_array as $key =&gt; $nested_array) {\n    echo $nested_array[ 'name_'. $key ]. PHP_EOL;\n}\n<\/code><\/pre>\n<h3>Suure massiivi t\u00fckeldamine t\u00f6\u00f6tlemiseks.<\/h3>\n<p>Kui meil on v\u00e4ga suur massiiv, saame <code>array_chunk<\/code>selle jagada v\u00e4iksemateks t\u00fckkideks, mida saaksime seej\u00e4rel eraldi salvestada. Vaatame, kuidas saaksime seda WordPressis teha:<\/p>\n<pre><code>$original_array = [...]; \n$post_id        = get_the_ID();\n$chunked_array  = array_chunk( $original_array, 10, true );\n\nforeach( $chunked_array as $key =&gt; $array) {\n    update_post_meta( \n        $post_id,\n        '_wc_chunked_array_partial_'. $post_id,\n        $array\n    );\n}\n<\/code><\/pre>\n<h2>Lisalugemist<\/h2>\n<p>Lisateavet leiate <a href=\"https:\/\/www.php.net\/manual\/en\/function.array-chunk.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP kasutusjuhendist<\/a>.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/wholesomecode.ltd\" class=\"external external_icon\">wholesomecode.ltd<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Massiivi t\u00fckki (massiivi_t\u00fckk) kasutades saame massiivi h\u00f5lpsalt jagada mitmem\u00f5\u00f5tmeliseks massiiviks (massiivide massiiviks). Massiivi t\u00fckkide funktsiooni saab kasutada massiivi jagamiseks v\u00e4ikesteks&#8230;<\/p>\n","protected":false},"author":1,"featured_media":224072,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,749,894,916,842,802],"tags":[1165],"class_list":["post-228222","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-avatud-laehtekoodiga","category-kood","category-muud","category-opetused","category-php-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/228222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=228222"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/228222\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/224072"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=228222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=228222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=228222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}