Filtering The Elements Of A Multi-dimensional Array
I would like to be able to filter every element of a multi-dimensional array
using htmlspecialchars() and to retain the structure of the array. I can't
see how to do this when I don't know how many dimensions the array has.
View Complete Forum Thread with Replies
See Related Forum Messages: Follow the Links Below to View Complete Thread
Finding Elements Of An Array In Another Multi-dimensional Array
So I have 2 arrays: one contains userids. It may look like: user_id[0] =12, user_id[1] =30, user_id[2] =43 The other is a multi-dimensional array with fields like: user_info [0] = Array ( [user_id] =13 [user_flag] =1 [url] =http://www.example.com?index,0 ) user_info[1] =Array { Array ( [user_id] =120 [user_flag] =1 [address] =1234 Main St, Anytown, USA [url] =http://www.yahoo.com ) user_info[2] =Array { Array ( [user_id] =130 [user_flag] =1 [address] =134 Main St, Anytown, USA [url] =http://www.google.com )
Processing Data From Multiple Multi-line Textareas Into A Multi-dimensional Array
I know that this sounds like something overly complex - because it is. However, if I can keep the user interface the way it is, my users will be ultra happy! That is the goal... In general, this is an inventory receiving piece of an overall larger web-based ERP system. What I have is a form in which I have a dynamic number of multline textareas for inputting (possibly barcode scanning in) many serial numbers per line item recieved. For example: lineitem01 = widget01; qtyReceived = 2; lineitem02 = widget02; qtyReceived = 3; lineitem03 = widget03; qtyReceived = 10; This would display a form that will generate 3 textarea elements (1 per lineitem received). Inside each textarea element will be input the serial numbers for each of the widgets received per lineitem. i.e. 2 serial numbers will be entered for widget01; 3 for widget02; and 10 for widget03; So, what I am trying to do is pass this data over, possibly as a multi- dimensional array to another form ( or possibly $_SERVER['PHP_SELF'] ) to update a MySQL database to store the widget/serial numbers.
Multi Sorting Multi Dimensional Array?
I have been using usort to sort my multi dimensional arrays ... function cmp($a, $b){ if($a[0] == $b[0]){ return 0; } return ($a[0] < $b[0]) ? -1 : 1; } usort($searchResults, 'cmp'); Which works fine, but I need to sort by one element in the array, then another, preserving the previous sort. lets say the array is as follows: array[0] = array[0] = foo [1] = 2 [1] = array[0] = foo [1] = 0 [2] = array[0] = bar [1] = 1 [3] = array[0] = bar [1] = 0 [4] = array[0] = foo [1] = 1 [5] = array[0] = bar [1] = 2 Initially, I sort the array in to groups based on array[?][0] using usort as above so the output is : foo, 2 foo, 0 foo, 1 bar, 1 bar, 2 bar, 0 Next though, I would like to sort this output by number (array[?][1]) in the groups so that the output is : foo, 0 foo, 1 foo, 2 bar, 0 bar, 1 bar, 2 Is this possible? I am completely at a loss as to how to do this ...
Multi-Dimensional Array
Let's say I have the following multidimensional array: $foodtypes = array ( "Fruit" => array ("Apple", "Pear"), "Vegetable" => array ("Lettuce", "Eggplant", "Pepper"), "Meat" => array ("Beef", "Pork")); Assuming that $food = 'Eggplant', How do I find what foodtype it belongs to? I know the following works, but I know there must be a better way to do this, like using array_search or array_keys. I can't get anything other the following to work though. Code:
Multi Dimensional Array
I want to go create a table with a textfield where the user can enter an amount for a certain dynamically created article coming from the database. Later, I want to calculate the whole price and so on. It works nicely to create my multi dimensional array, however, it does not work to save the values coming from the form to calculate the price. What's wrong??? <form name="shop" method="post" action="index.php"> $articleTable = array(); while ($row = mysql_fetch_array($result)) { $articleNr= $row["articleNr"]; $name= $row["name"]; $picName= $row["picName"]; $price = $row["price"]; $amount=""; $articleRow = array( "articleNr" => $articleNr, "name" => $name, "picName" => $bildName, "price " => $price , "amount" => $amount ); array_push($articleTable , $articleRow ); } foreach($articleTable as $article) { ?> <input type="text" name="article[amount]" size="2" maxlength="2" value="<? $article[amount] ?>"></td> } <? } ?> </form>
Sorting Multi-dimensional Array
Sorting multi-dimensional array I have this array: Array ( [0] => Array ( [account] => 263 [counter] => 1 ) [1] => Array ( [account] => 324 [counter] => 5 ) [2] => Array ( [account] => 972 [counter] => 3 ) [3] => Array ( [account] => 1316 [counter] => 3 ) [4] => Array ( [account] => 1380 [counter] => 1 ) [5] => Array ( [account] => 1880 [counter] => 2 ) ) I need to sort by the key [counter], how can I do that?
Multi-Dimensional Array Question
Can you have a multi-dimensional array like this? $Test[0]['Fname'] = "John"; $Test[0]['Lname'] = "Doe"; Or do you have to use only numbers?
Building Multi Dimensional Array
I am trying to build a multi dimensional array from an unsorted array. I have an array made up of the lines in a text file, each line is a comma seperated set of fields. The first two fields are the lines id and it's parents id; eg Line ID, Parent ID, Data 1, 1 , one 2, 2, two 3, 3, three 4, 1, four 5, 4, five 6, 1, six 7, 2, seven I am trying to build a multi dimensional array so that the final array would look like; -- one ---- four ------ five ---- six -- two ---- seven
Sessions And A Multi-dimensional Array
I'm writing a shopping cart w/ Sessions and a multi-dimensional array. I am only storing product id and qty (for right now, but decided on the multi-dimensional array for expansion purposes - storing customer instructions, etc.) I have come up with two paths, but can't decide which is better. 1. storing info based on product id: ...[cart][$prod_id] = array("qty" => $qty) This, of course would allow for easy product checks: if ([cart][$prod_id]) {...}, but unless I store the $prod_id in the prod_id array as well, I'd be forced to use foreach(array_expression as $key => $value) when displaying the cart (as I also want the product id displayed next to the product name) 2. storing info based on item number: ...[cart][] = array("id" => $prod_id, "qty" => $qty) This makes for more code when checking if the product is already in the cart (multiple foreach statements), but should allow the cart to be displayed more easily and logical.
Sorting Multi-dimensional Array
I am having trouble getting the sort function for arrays to work correctly on my multi-dimensional array. array[0][]=Ƈ' array[1][]='bob' array[2][]='age' array[0][]=Ƌ' array[1][]='bill' array[2][]='age' I then do sort($array[0]) But only array[0][] gets sorted, the names do not follow. Does anyone see any error on my part or have a clue for me to follow to solve this?
Printing From A Multi-dimensional Array
I have to create a multidimensional array that data for a bank will be stored in then from that array I will print it. My boss said to first program it like i am recieving the array. Then later he will have me create the array. Order multidimensional Array I will recieve will be arranged in and the printed like this. Code:
Multi-dimensional Array Sorting
I need some help sorting an array, same in structure as: Array ( [assoc1] => Array ( [key1] => value [key2] => value [key3] => value ) [assoc2] => Array ( [key1] => value [key2] => value [key3] => value )) What I want to do is sort the array by the value in say the key2 "column". Depending on input, the value to sort by may be key3 or some other key. I've looked at array_multisort(), but I'm not sure how I can specify what exact column I want to sort by, without affecting the rest.
Multi-dimensional Array Not Working Correctly???
I know this is going to be something totally stupid that I just can't see. I have a two dimensional arrray. The first index is a 0 based incremented int, and the other index is either an 'l' or a 'w'. Look what's happening:
Parsing All Multi-Dimensional Array Combinations
I am trying to build a dynamic table structure with multi-dimensional arrays. The first dimension is being pulled from the databse and can be refferred to as an attribute. The second dimension is also created on the fly by db, and can be reffered to as variations. I have tried using array_walk as well as using a recursive function that allows me to step through each of the various array combinations. For example I may have 2 attributes; Color & Size. Color has 3 variations (Red, Green, Blue). Size has 4 varitions (Small, Medium Large, X-Large). Basically I am trying to build something like this: Color Size Red Small Red Medium Red Large Red X-Large Green Small Green Medium Green Large Green X-Large Blue Small Blue Medium Blue Large Blue X-Large The biggest problem with this, however, is that it needs to be dynamic enough that an attribute (like sleeve length: Short sleeve - Lon sleeve, etc...) can be added without changing the code.
Adding A Entry Into A Multi-dimensional Array
I make an SQL call to a DB and gather some info. In the following case, I have 2 elements in the array (HERO_ID #1 and #2) I then want to add a third element to to the array, but I just cant seem to grasp the concept. I always seemed to have trouble grasping the concept of arrays in programming classes for some reason. Code:
How To Declare A Global Multi Dimensional Array?
i cant figure this one out... this code declares a 1d array global. however i need a multid array to be global.... global $list_U001; since i need a maximum of only 99 arrays...i could decklare those like that and construct the variable from counter ...but i dont know how to construct a "dynamic variable".... global $list_U001; global $list_U002; global $list_U003; etc... for(i++) $list_U00.'$i'.[]
Selecting 1 Field From A Multi-Dimensional Array
I want to know how do I select just 1 field from a Multi-Dimensional Array. I know how to select all the fields, by using the following format: <?php foreach($fields as $key => $val){ echo $val; } But how can I do a similar thing, but to just select 1 specific field, not all of them?
Turn Array Into Multi-dimensional Array?
How can I take an existing array and turn it into a multi-dimensional array? I want to get a single row out of a MySQL table and have it in an array, but have along side the values the true field (column) length for each of the fields from the table. Here's my stab at it: $userDetails = mysql_fetch_array($resultID); $i = 0; while ($i < mysql_num_fields($resultID)) { $userDetails[$i][2] = mysql_field_len($resultID, $i); $i++; } And I guess the follow up question (if this is indeed possible) is will this work with a multi-row return from the DB also?
Encoding / Decoding Multi Dimensional Session Array
Can you encode and decode multi-dimensional arrays? I think encoding them works just fine using session_encode(), however, session_decode is only capable of decoding the single dimensional arrays stored in the encoded string...
Making Mysql Result Into Multi-dimensional Array
My php problem is I want to make the result of 3 tables linked through foreign keys into a 3-dimensional array that reflects their relationship without repetition and without having to call the database more three times. I know I'm doing a couple of things wrong, one thing for instance is initializing a variable at the end of the loop to remember the previous value s that it does not repeat itself, surely there must be a more elegant way to go about this, but I'm lost and I've been stuck on this all day. Code:
Pushing Data Into A Multi-dimensional Array From Mysql Results
First, A result array I'd want to get could look like this: $chart['chart_data'] = array ( array ( "Region A", 10,12,11,15,20,22,21,25,31,32,), ); The first is "Region A" and the rest is just int's that I'd pull from the db, so to set it I'd do this: $chart [ 'chart_data' ][ 0 ][ 0 ] = "Region A"; But the problem is when I want to insert the data in the while loop (like the 10,12,11,15...), I've tried array_push but it's not working, maybe it doesn't work with multi-dimensional arrays? Anyways, here.'s what I tried, the following inside the "while" to loop the mysql results with mysql_fetch_assoc: while($r=mysql_fetch_assoc($res)) { $chart [ 'chart_data' ][ 0 ][ 0 ] = array_push($chart['chart_data'][0][0], $r['wght']); // the above line is where I have problems ^^ } What I want is on each loop to insert the fetched data inside the array so that it gives what I gave first at the top, but what I've written above doesn't work, it gives me a warning saying "first argument must be an array" which seems to be one, but anyway, anybody know how to do this?
"Array To String Conversion" Error When Constructing A Multi-dimensional Array
I'm a bit stumped as I am getting a "Notice: Array to String Conversion" error when trying to do something that on the surface should be a very simple task - create an array, and write a set of values to them based on data submitted from POST Fields. Code below: $_SESSION["increment"] = array(); $x = 0 // Counter - This will be incremented $_SESSION["increment"][$x] = array("increment_bond" => $_POST["increment_bond"], "increment_amount" = $_POST["increment_amount"], "increment_comm_date1" = $_POST["increment_comm_date1"], "increment_comm_date2" =$_POST["increment_comm_date2"], "increment_comm_date3" = $_POST["increment_comm_date3"]); It keeps throwing out that error, and does not write any of the POST Values to the array (the POST values are definitely getting sent, so that is not the problem). If I dump out the value of $_SESSION["increment"], I get "1A" ?!? I'm sure that there is a pretty simple mistake lurking somewhere - I just can't seem to figure it out.
Multi-dimensional In Php3
Hi, I was using php4 on my test area and setup a 3d array like below.... <input type="text" name="col[<?echo $i1; ?>][<?echo $i; ?>]" value="<? /* if begin is yes then get input value from db */ if (($begin=="yes")| |($new_setnum == $setnum)) { echo $row_payele[$item2]; } /* else print current input box value */ else { echo trim($col[$i1][$i]); }?>" maxlength="8" size="4"> then i reference the value in the same way... $col[$i2][$i] etc.. This all worked fine on my own machine which is using php4. but when I go to the live server which is using php3 the variable is not picked up. Even if I try using $col[1][1] it doesn't work. Does anyone know why and a work around to it in php3??? Thanks in advance.
Multi-Dimensional Arrays
okay, i need to make a arrray that holds an array of 2 different id numbers, $catagory_id and $subcatagor_id are both variables inside a loop that take on a different number each loop. I want to put those number inside an array, each one being it's on array, but I need those numbers to be inside another array that I can call to find another array that will be inside that same array: sounds confusing, but basically, I have a table with ID's each id is assigned a catagory and and a sub catagory, each id is unique but there could be multiple id's under the same sub_cat and cat. So, i need the array to be set up so that I could call all id's that have a certain cat and subcat number: echo ("$idnumber[$cat_id][$subcat_id]"); something like that, can anyone help?
Multi-dimensional Arrays
Hi, I'm new to arrays and I'd appreciate it if someone could tell me why this code always returns the value of $off [Interceptor]? <? $ships = array( "Interceptor" => array( "hp" => 100, "am" => 10, "fp" => 30 ), "Jeep" => array( "hp" => 40, "am" => 500, "fp" => 2 ) ); function showVictor ($off, $def) { $offFP = $ships[$off]["fp"]; $defHP = $ships[$def]["hp"]; $defAM = $ships[$def]["am"]; $defAM *= 2; $defence = $defAM + $defHP; if ($offFP < $defence) { $victor = $def; } else { $victor = $off; } echo $victor; } showVictor ("Interceptor", "Jeep"); ?>
Multi-Dimensional Madness
I have a problem with a multidimensional array. This is my array ($data) printed with print_r: PHP Code:
Multi-dimensional Arrays
If I have a 2-dimensional array where the top key is year numbers (e.g. "2003"), the second key is month numbers (e.g. "8" to represent August), and the data stored is some cardinal number, how can I use foreach() (or anything else) to access the data? I want to write one line of HTML for each year, along the lines of: 2003 [ 8(23) ] assuming that 23 would be the cardinal number stored at $array[2003][8]. I s'pose what I'm trying to do is use the key, which is an array, as a string to print out. Or maybe I'm just confused? PHP Code:
Multi-Dimensional Arrays
It's a simple question, but I'm just not getting it. I have two files: <?php $precinct = array ( array ( number=>2324, centerlat=>-122.31705665588379, centerlong=>47.710367959402525, etc... <?php include ("precinctdata.php"); $filename = $_GET['id']; $number = $precinct[filename-1][number]; etc... I want to assign the value of "2324" to the variable $number. I've done this with arrays that start with number=>1, 2, 3, etc., but not successfully with specific values. What am I missing?
Multi-Dimensional Arrays
I am trying to make a multi-dimensional array. I am having trouble adding to the array. What I mean by that is using the array_push() function. Does anyone know how to add to a multi-dimesional array?Ex. $somearray = array("1" => array("This is one")); #The line above works. how can I add "2" = > array("This is two");
Multi Dimensional Arrays
I've always disliked multi dimensional arrays because I can never grasp the logic behind them. A simple md array I can implement... but let's say I want.. $array=[hotelid]=>20; [roomcategory]=>1; [rate]=>49 is this possible? My life would be so much EASIER if I can understand this...I have a flat text file with multiple listings (tab deliminated) ... as follows Code:
Multi-dimensional Arrays
I am reading info from a tab-delimited text file and I was wondering if anyone knew how to get this concept to work. I am trying to store the entire table in a two dimensional array, but the way I'm doing it right now won't work. for($i=0; $i<$numrows; $i++) {$columnsvalue[i] = explode(" ",$newfile[i]);} does anyone else know how to better work with multi-dimensional arrays?
Sorting Multi-Dimensional Arrays
I have a multidimensional array: $austin[$athletics, $braves, $cardinals, $drays, $mets, $rangers, $royals] Each sub array is defined like this: $athletics[teamname, wins, losses, ties, points] (where wins, losses ties and points are intialized to 0) Now how do I sort the $austin array by team points after they have been populated?
Sorting Multi Dimensional Arrays.
I am writing a meta search engine script and each results gets a score based on a number of factors. What I'm trying to do is sort the results with the highest score first, ready for output. So the Array looks like this array(2) { [0]=> array(4) { [Title]=> "My site" [Description]=> "whatever" [Url]=> "url.com" [Score]=> "200" } [1]=> array(4) { [Title]=> "My site2" [Description]=> "whatever" [Url]=> "url.com" [Score]=> "223" } } Obviuosly there are more than 2 results in real life, but is there anyway to sort the array so My Site2, with a score of 223 will appear first?
Multi-dimensional Arrays, Wildcards
I've got an array question. I've searched, but maybe I just can't figure out the best way to phrase the question to Google or groups, so I'll try here. I've got a multi-dimensional array that resolves out to look like this: Array ( [2004-48] => Array ( [linesadded] => 122 [linesdeleted] => 4 ) [2004-49] => Array ( [linesadded] => 28 [linesdeleted] => 23 ) [2004-50] => Array ( [linesadded] => 18 [linesdeleted] => 5 ) [2004-51] => Array ( [linesadded] => 178 [linesdeleted] => 38 ) ).........
League Table - Multi-dimensional Arrays
I am seting up a league table for a friend and i have found i need to use multi-dimensional arrays. I have little experience of these in PHP and this is what's wrong in my code i believe. Writing to this array seems to be the problem as there should be more than one result per team yet it only displays one. It should be passing through once, storing all the data in this array and then outputting it after however the scores that should be in the array aren't except for the last one. PHP Code:
Question About Sorting Multi Dimensional Arrays
i am trying to krsort by date in a multi dim array. i hope i put this correctly (but i have included the php function i made for converting xml to array: so each sub array is labelled according to the date which then in turn becomes the name of the key in the multi array, but when sorted, any duplicate dates are replaced by the most recent... function index2array() { $dom = new DomDocument(); $dom->load(INDEX) or die('Failed to load ' . INDEX . '.'); global $mArray; $items = $dom -> getElementsByTagName('item'); $dates = $dom -> getElementsByTagName('date'); $titles = $dom -> getElementsByTagName('title'); $links = $dom -> getElementsByTagName('link'); $descriptions = $dom -> getElementsByTagName('description'); $keywords = $dom -> getElementsByTagName('keywords'); $mArray=array(); $numberOfItems = $dates -> length; for ($i = 0; $i < $numberOfItems; $i++) { $a_name = $dates -> item($i) -> textContent; $$a_name = array ( 'id' => $items -> item($i) -> getAttribute('id'), 'title' => $titles -> item($i) -> textContent, 'link' => $links -> item($i) -> textContent, 'description' => $descriptions -> item($i) -> textContent, 'keywords' => $keywords -> item($i) -> textContent ); $mArray[$dates -> item($i) -> textContent] = $$a_name; } } i'm trying to make my own news CMS and wont actually have duplicate date entries in my xml but i still want it to be solid...
Array Sorting Blues....2 Dimensional Array
I have a 2 dimensional array where one col contains a Unix style date and the other contains a filename. I read through a directory to get this info. I can load the array and print it out just fine, but I can't seem to sort it using any of the sort functions! I want to reverse sort them, since they are news stories that I want to display in the correct order by date. When I try to sort I get a "Warning: Cannot compare arrays or objects" message. I have the feeling it's something stupid on my part but can't find any good examples anywhere. Anyone have an idea about this? P.S. I know a database would solve this but sadly it's not an option for me right now...
Add Array Elements?
Is it possible, (in a simple and fast way), to add array elements like this: array1 ([10][12][3][8]) array2 ([2][4][7][1]) after adding theese to arrays the result array will be like this. resarray ([12][16][19][9]) position 1 will be added with the same position in the next array... position 2 ...and so on...
How Many Elements In An Array
Whats a function to work out how many elements in an array... So like if i want to figure out how many elements in this array: $explodearray = explode(',' , $_SESSION['username']); How many elements are in the $explodearray? Elements as in the number in the brackets..
Creating An Array Of Two Elements From Another Array
I’m trying to create an array that contains a department name and a associated colour code, by filtering from a SQL result. I’ve written a simple script, but to be honest I’m now stumped how to create such an array. PHP Code:
Remove Array Elements With The Given Value From Array
If I have an array, $myarray, with the elements values like (1, 2, 3, 6, 8, 10). I need a function applies to this $myarray to get rid of the element with certain value such as array_function_i_am_looking_for($myarray, 3) will return $myarray with the values (1, 2, 6, 8, 10). I checked out the array function manual. The closest one is array_filter. And I just need to write a function to compare the value for array_filter.
PHP 4 OO Issue - 3 Dimensional Array
Hello, I have this simple script that i have a 3 dimensional array. However I am kinda new to OO php, and it keep getting the same error? Any ideas? class maps{ //Initalize the city array var $City = array(); $City['city1']['Dundas']['Codes'] = "L9H, L85"; //ERROR LINE $City['city1']['Dundas']['Amount'] = 13915; $City['city2']['North Burlington']['Codes'] = "L7M, L7P"; $City['city2']['North Burlington']['Amount'] = 19668; $City['city3']['South Oakville']['Codes'] = "L6K, L6L, L6M"; $City['city3']['South Oakville']['Amount'] = 26044; function display_cities(){ echo "hi"; foreach($this->City as $kCity=>$vCity){ echo $kCity." = ".$vCity."<br>"; } echo "bye"; } } Error is in this class file on the line noted. Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION This is probably really simple, but i've been looking at it for a couple hours and cant figure it out.
Two Dimensional Array Problem
I want to put the contents of a csv file into a 2 dimensional array so that I can access any element in a $table[x][y] manner and have come up with the following code: $complete = file("source.csv"); $row=0; foreach ($complete as $value) { $data = explode(",", $value); $table[$row] = $data; $row++; } echo "$table[6][4]"; However the echo statement returns "Array[4]" instead of the 4th element in the 6th row. Any suggestions on what I ought to be doing please to make $table a proper 2 dimensional array?
|